一种为游戏应用分配资源的方法及电子设备与流程

文档序号:28208385发布日期:2021-12-28 19:33阅读:130来源:国知局
一种为游戏应用分配资源的方法及电子设备与流程

1.本技术涉及资源分配技术,尤其涉及一种为游戏应用分配资源的方法及电子设备。


背景技术:

2.随着安卓(android)设备软硬件性能的不断发展,基于android平台开发的移动端手游正致力于开发出更为高帧率高精度的画面和更为细化的动画渲染。而unity引擎无疑成为了开发出高质量动画的不二之选。数据表明,google play(android官方应用商店)上排名前1000款游戏中,53%都是用unity引擎创作的。
3.unity游戏中会有大量的物体对象需要快速更新,各种动画,模拟,游戏逻辑等如果都在同一个主线程中进行处理,大量的处理任务会堆积在同一个中央处理器(cpu,central processing unit)的内核中,cpu就会成为图形处理器(gpu,graphics processing unit)的瓶颈,每次gpu都要等待cpu处理完成后才能进行图形处理。因此充分利用多线程也是近些年各大游戏厂商的游戏引擎的一个研发方向。
4.每个游戏对于多线程的实现方法不同,每个子线程的任务负载量也不同。目前的手游终端在配置了多个cpu内核的情况下,如果能很好地进行线程间的资源调度,使得各个子线程可以高效运行在多个cpu的内核上,就可以很大程度上提高游戏性能,减少功耗和发热,优化游戏体验。


技术实现要素:

5.有鉴于此,本技术实施例期望提供一种信息处理方法及电子设备。
6.为达到上述目的,本技术的技术方案是这样实现的:
7.根据本技术的一方面,提供一种为游戏应用分配资源的方法,所述方法包括:如果当前处于运行状态的游戏应用为目标应用,确定所述目标应用的主线程和高负载线程;将所述主线程绑定到第一目标内核运行以及将所述高负载线程绑定到第二目标内核运行;基于默认策略分配所述目标应用的其余线程在中央处理器所对应的多个内核中的运行。
8.上述方案中,所述基于默认策略分配所述目标应用的其余线程在中央处理器所对应的多个内核中的运行,包括:
9.基于默认策略分配所述目标应用的其余线程运行在所述中央处理器所对应的多个内核中的非第一目标内核和非第二目标内核。
10.上述方案中,所述方法还包括:
11.在预设数据包列表中查找所述游戏应用的数据包名;如果在所述预设数据包列表中查找到所述游戏应用的数据包名,确定当前处于运行状态的游戏应用为目标应用;
12.或者,在预设进程列表中查找所述游戏应用的进程标识符;如果在所述预设进程列表中查找到所述游戏应用的进程标识符,确定当前处于运行状态的游戏应用为目标应用;
13.或者,确定所述游戏应用的线程标识符中是否有预设标识;如果所述游戏应用的线程标识符中有预设标识,确定当前处于运行状态的游戏应用为目标应用。
14.上述方案中,所述确定所述目标应用的主线程,包括:
15.获取所述目标应用的进程信息,所述进程信息中至少包括所述目标应用中各线程的线程标识符;
16.根据所述线程标识符,确定所述目标应用的主线程。
17.上述方案中,所述确定所述目标应用的高负载线程,包括:
18.获取所述目标应用的进程信息,所述进程信息中至少包括所述目标应用中各线程的负载量参数;
19.根据所述负载量参数,确定所述目标应用的高负载线程。
20.上述方案中,所述方法还包括:
21.查询预设数据库,以确定所述主线程对应的第一目标内核以及所述高负载线程对应的第二目标内核;所述预设数据库中存储有各类型线程与各内核的映射关系。
22.上述方案中,所述方法还包括:
23.获取所述中央处理器所对应的多个内核的运行参数;
24.基于所述运行参数确定所述多个内核中的一级空闲内核和二级空闲内核,其中,所述一级空闲内核的空闲率大于所述二级空闲内核的空闲率;
25.将所述一级内核确定为所述第一目标内核;将所述二级内核确定为所述第二目标内核。
26.上述方案中,所述方法还包括:
27.如果当前处于运行状态的游戏应用为非目标应用,基于所述默认策略分配所述非目标应用的各线程在中央处理器所对应的多个内核中的运行。
28.根据本技术的另一方面,提供一种电子设备,包括:
29.确定单元,用于如果当前处于运行状态的游戏应用为目标应用,确定所述目标应用的主线程和高负载线程;
30.分配单元,用于将所述主线程绑定到第一目标内核运行以及将所述高负载线程绑定到第二目标内核运行;以及基于默认策略分配所述目标应用的其余线程在中央处理器所对应的多个内核中的运行。
31.根据本技术的第三方面,提供一种电子设备,包括:处理器和用于存储能够在处理器上运行的计算机程序的存储器;
32.其中,所述处理器用于在运行所述计算机程序时,执行上述方法中任一项所述的方法步骤。
33.本技术提供的一种为游戏应用分配资源的方法及电子设备,通过在当前处于运行状态的游戏应用为目标应用的情况下,将目标应用的主线程和高负载线程分别分配到特定的内核运行,而将目标应用的其余线程基于默认策略分配在中央处理器所对应的多个内核中的运行。如此,可以使cpu的各个内核得到合理的分配,使资源使用率最大化,避免同一个cpu内核上任务过多或过少的情况。
附图说明
34.图1为本技术中为游戏应用分配资源的方法流程实现示意图;
35.图2为本技术中电子设备的结构组成示意图一;
36.图3为本技术中电子设备的结构组成示意图二。
具体实施方式
37.以下结合说明书附图及具体实施例对本技术的技术方案做进一步的详细阐述。
38.图1为本技术中为游戏应用分配资源的方法流程实现示意图,如图1所示,包括:
39.步骤101,如果当前处于运行状态的游戏应用为目标应用,确定所述目标应用的主线程和高负载线程;
40.本技术中,该方法可以应用于电子设备,该电子设备可以是电脑、手机、平板、游戏机等等具有游戏功能的终端,且该电子设备中安装有多个应用。如果该电子设备在运行某个应用,并且在当前应用满足预设条件的情况下,该电子设备还可以获得该应用的进程信息;根据该应用的进程信息,可以按照预先设置的映射集合,将该应用的各线程资源分配给中央处理器对应的多个内核运行,其中,该映射集合中存储有各线程与各内核的映射关系。
41.在一个实现方案中,该电子设备可以根据当前应用的属性信息确定当前应用的类型,如果当前应用的类型表征当前应用是游戏类应用,则确定当前应用满足预设条件。
42.在另一个实现方案中,该电子设备还可以在预设应用列表中查找当前应用的名称,如果查询结果表征在预设应用列表中查找到当前应用的名称,则确定当前应用满足预设条件。
43.本技术中,当该电子设备中当前处于运行状态的应用为游戏应用的情况下,还可以进一步确定该游戏应用是否是目标应用。
44.在一种实现方案方式中,该电子设备可以根据该游戏应用的数据包名确定该游戏应用是否是目标应用。
45.具体地,该电子设备可以在该游戏应用的运行信息中获取到该游戏应用的数据包名,然后在预设数据包列表中查找该数据包名,如果查询结果表征在该预设数据包列表中查找到该游戏应用的数据包名,则确定当前处于运行状态的游戏应用为目标应用。或者,该电子设备还可以识别该数据包名,得到该数据包名的关键字,如果该数据包名中携带有目标关键字,则确定当前处于运行状态的游戏应用为目标应用。
46.在另一个实现方案中,该电子设备还可以根据该游戏应用的进程信息确定该游戏应用是否是目标应用。
47.具体地,该电子设备可以在该游戏应用的图像绘制过程中通过正则表达式获取该游戏应用的进程信息,然后在预设进程列表中查找该游戏应用的进程标识符,如果查询结果表征在该预设进程列表中查找到该游戏应用的进程标识符,则确定当前处于运行状态的游戏应用为目标应用。
48.在另一个实现方案中,该电子设备还可以根据该游戏应用的线程标识符确定该游戏应用是否是目标应用。
49.具体地,该电子设备可以通过在该游戏应用的图像绘制过程中通过正则表达式获取游戏应用的进程信息,在该进程信息中获取该游戏应用的线程标识符,然后识别该线程
标识符中是否有预设标识;如果所述游戏应用的线程标识符中有预设标识,则确定当前处于运行状态的游戏应用为目标应用。
50.这里,具体可以将基于unity引擎的游戏应用确定为目标应用。
51.本技术通过智能识别基于unity引擎的游戏应用,可以灵活开启unity游戏应用的各个线程在cpu对应的多个内核上的资源调度。
52.本技术中,当该电子设备确定当前处于运行状态的游戏应用为目标应用时,还可以确定该目标应用的主线程和高负载线程。
53.具体地,该电子设备可以通过获取该目标应用的进程信息,该进程信息中至少包括该目标应用的多条线程的多个线程标识符;根据该进程信息中各线程的线程标识符可以确定该目标应用的主线程和子线程。其中,子线程可以包括高负载线程和低负载线程。
54.本技术中,该目标应用的进程信息中还可以至少包括表征目标应用中各条线程的负载量的参数,根据各条线程的负载量参数可以确定该目标应用的高负载线程和低负载线程。
55.这里,具体可以根据各条线程的负载量参数,将满足预设负载量值的目村负载量参数所对应的目标线程确定为高负载量线程。
56.比如:预设负载量值表征线程在cpu中的占比是10%。而当前的游戏应用的进程中有四条线程,其中,线程a在cpu中的占比是20%,线程b在cpu中的占比10%,线程c在cpu中的占比0.5%。线程d在cpu中的占比0.4%,其中,线程a和线程b在cpu中的占比均达到了预设负载量值,则可以将线程a确定为高负载线程,或者,将线程a和线程b均确定为高负载线程。
57.本技术中,在目标应用的进程信息中包括有多条线程的负载量参数,通常越靠前的线程的负载量参数越高,因此,该电子设备还可以根据每条线程的排列顺序,将排列最前的线程确定为目标应用的高负载线程,将排列靠后的线程确定为目标应用的低负载线程。
58.比如:当前的游戏应用的进程中有四条线程,其中,四条线程在cpu中的排序是:线程a、线程b、线程c和线程d,则将线程a确定为目标应用的高负载线程。
59.步骤102,将所述主线程绑定到第一目标内核运行以及将所述高负载线程绑定到第二目标内核运行;
60.本技术中,当电子设备确定出目标应用的主线程和高负载线程的情况下,还可以根据预设规则,将该主线程绑定到第一目标内核运行以及将该高负载线程绑定到第二目标内核运行。
61.这里,该预设规则表征按照特定策略分配目标应用的各线程在中央处理器所对应的多个内核中运行,而非按照默认策略分配目标应用的各线程在中央处理器所对应的多个内核中运行。
62.具体地,特定策略可以是指通过对目标应用的各线程设定cpu亲和力的方法进行资源分配。这里,cpu亲和力就是设定让某个线程在某个指定的cpu内核上尽量长时间的运行而不被迁移到其他cpu内核上运行的倾向性。通过设定cpu亲和力,可以强行将某个线程绑定在某一个或某多个指定的cpu内核上运行。
63.在一种实现方案中,该电子设备可以根据预设规则查询预设数据库,根据该预设数据库中存储的各类型线程与各内核的映射关系,确定该主线程对应的第一目标内核以及
该高负载线程对应的第二目标内核;然后,将该主线程绑定到第一目标内核运行以及将高负载线程绑定到第二目标内核运行。
64.在另一种实现方案中,该电子设备还可以从中央处理器的运行信息中获取该中央处理器所对应的多个内核的运行参数;基于该运行参数可以确定该多个内核中的一级空闲内核和二级空闲内核,其中,该一级空闲内核的空闲率大于该二级空闲内核的空闲率;然后,将该一级空闲内核确定为第一目标内核,将该二级空闲内核确定为第二目标内核,并将该主线程绑定到该第一目标内核运行以及将高负载线程绑定到该第二目标内核运行。
65.本技术通过将游戏进程中的主线程和高负载线程绑定在固定的内核中运行,可以避免中央处理器的多个内核上出现负载过高或负载高低的情况,从而减少游戏过程中的画面卡顿现象,可以使游戏应用在稳定帧率和游戏反应速度的同时降低设备功耗,减少设备发热现象。
66.步骤103,基于默认策略分配所述目标应用的其余线程在中央处理器所对应的多个内核中的运行。
67.本技术中,游戏应用在运行状态下除了游戏进程的线程,还有系统进程的线程在中央处理器的多个内核中运行。本技术中,该电子设备还可以基于默认策略分配该目标应用的其余线程在中央处理器所对应的多个内核中的运行。
68.这里,该其余线程只包括游戏进程中低负载线程和系统进程中的各线程,不包括游戏进程中的高负载线和主线程。
69.具体地,该电子设备在基于默认策略分配目标应用的其余线程在中央处理器所对应的多个内核中的运行时,可以在每个内核上运行多条线程,并且每个内核上可以在同一时刻只有一个线程在运行,系统通过给每个线程分配时间片,使每个线程在中央处理器的一个内核上跑一点点就会切换到下一个线程继续跑。当然,每个内核上还可以在同一时刻有多条线程同时在运行。
70.本技术中,该电子设备在基于默认策略分配目标应用的其余线程在中央处理器所对应的多个内核中的运行时,可以将该其余线程分配到中央处理器所对应的包括第一目标内核和第二目标内核的多个内核中,如此,可以保证中央处理器的多个内核的负载均衡。
71.本技术中,该电子设备在基于默认策略分配目标应用的其余线程在中央处理器所对应的多个内核中的运行时,也可以将该其余线程运行在该中央处理器所对应的多个内核中的非第一目标内核和非第二目标内核。如此,可以避免其余线程占用主线程和高负载线程的内核空间,从而可以有效保证游戏画面顺畅不卡顿。
72.本技术中,该电子设备还可以检测当前的游戏应用按照特定策略分配该游戏应用的进程中各线程在中央处理器所对应的多个内核中的运行情况,如果检测结果表征当前游戏应用按照特定策略进行线程分配后运行不畅,还可以按照默认策略分配该游戏应用的各线程在中央处理器所对应的多个内核中运行。
73.本技术中,该电子设备还可以在确定当前处于运行状态的游戏应用非目标应用的情况下,基于默认策略分配该非目标应用的各线程在中央处理器所对应的多个内核中的运行。具体分配方式可以参考上述对其余线程的分配方式。
74.本技术通过在当前处于运行状态的游戏应用为目标应用的情况下,将目标应用的主线程和高负载线程分别分配到特定的内核运行,而将目标应用的其余线程基于默认策略
分配在中央处理器所对应的多个内核中的运行。可以使cpu的各个内核得到合理的资源分配,避免有的内核负载量大,有的内核负载量小的情况,可以使内核的资源使用率最大化,减少游戏过程中出现画面卡顿的现象。另外,通过本技术的方案,可以使得游戏应用的各个子线程高效运行在中面处理器的多个内核上,可以很大程度上提高游戏性能,降低设备功耗和发热的情况,优化游戏体验。
75.下面以高通骁龙888旗舰处理器的android游戏终端为例说明本方案的实现方法。示例处理器分三个cpu核心簇,其中,cpu 0至cpu 3为一个核心簇,cpu 4至cpu 6为一个核心簇,cpu 7为一个核心簇。游戏在运行时不光有游戏进程的线程,也有系统进程的线程在cpu上运行。当按照默认策略分配该游戏应用的各线程在cpu所对应的多个内核中运行时,每个cpu核心簇上运行着的线程基本没有规律且各个cpu核心的占用率有很大不同。比如:在cpu 0至cpu 3这四个内核中线程紧密排布,有很多线程是无缝衔接的,而无缝衔接的线程很有可能是后面的线程需要等待前面运行的线程资源释放后才得以运行,如果后面等待的线程参与游戏动画或逻辑处理,就可能造成这一帧画面绘制的延时,引起游戏画面卡顿,使游戏体验感降低。同时单个cpu的内核使用率过高也会引起设备发热和功耗升高。而在cpu 4至cpu 7这四个内核中线程排布却很稀疏,特别是cpu 7,cpu 7超过三分之二的时间都是空闲的。而通过本技术提供的方案在对unity引擎的游戏线程进行重新资源分配后,让游戏进程中的主线程和高负载线程锁定在固定的cpu内核上运行,可以使cpu内核的占用率均匀分布,避免出现负载过高或负载过低的情况。比如,优化后的cpu 0至cpu 3这四个核心簇中主要运行的是系统进程中的各线程,以及游戏进程中的低负载线程,cpu 4至cpu 7这四个核心簇中主要运行的是游戏进程中的高负载线程,cpu 7这一个核心簇上主要运行的为游戏进程中的主线程。如此,可以使cpu的各个核心簇的占用率分布均匀,不会出现负载过高或负载过低的情况,同时,也很少会出现无缝衔接的线程,减少了游戏画面卡顿的概率。
76.这里,衡量高负载游戏性能的两个最重要的指标为帧率和cpu发热情况。其中帧率体现在画面刷新的速率(帧率均值)和图像变化的顺滑程度(帧率方差),也侧面反映了游戏过程中的卡顿(帧率极值)。cpu发热则主要体现了游戏过程中的功耗。
77.本技术,通过动态地对unity引擎的游戏应用的各个线程设定cpu亲和力进行资源分配,让游戏进程中的主线程和高负载线程强行绑定在某一个或某多个指定的cpu核心簇上运行,而不被迁移到其他cpu核心簇上。比如,强制将游戏主线程绑定在cpu 7核心簇上运行,将游戏高负载线程绑定在cpu 4至cpu 6核心簇上运行。这样系统对游戏其他线程和系统线程进行分配时,就会优先考虑占用率较低的cpu 0至cpu 3。由于cpu 7这个核心簇上的资源利用率被游戏主线程所提高,cpu 0至cpu 3也减少了很大的负载量。
78.图2为本技术中电子设备的结构组成示意图一,如图2所示,该电子设备包括:
79.确定单元201,用于如果当前处于运行状态的游戏应用为目标应用,确定所述目标应用的主线程和高负载线程;
80.分配单元202,用于将所述主线程绑定到第一目标内核运行以及将所述高负载线程绑定到第二目标内核运行;以及基于默认策略分配所述目标应用的其余线程在中央处理器所对应的多个内核中的运行。
81.本技术中,该分配单元202,具体用于基于默认策略分配所述目标应用的其余线程
运行在所述中央处理器所对应的多个内核中的非第一目标内核和非第二目标内核。
82.本技术中,该电子设备还包括:
83.查询单元203,用于在预设数据包列表中查找所述游戏应用的数据包名或者,在预设进程列表中查找所述游戏应用的进程标识符;
84.该确定单元201具体还用于如果该查询单元203在所述预设数据包列表中查找到所述游戏应用的数据包名,确定当前处于运行状态的游戏应用为目标应用;或者,如果该查询单元203在所述预设进程列表中查找到所述游戏应用的进程标识符,确定当前处于运行状态的游戏应用为目标应用;
85.或者,确定所述游戏应用的线程标识符中是否有预设标识;如果所述游戏应用的线程标识符中有预设标识,确定当前处于运行状态的游戏应用为目标应用。
86.本技术中,该电子设备还包括:
87.获取单元204,用于获取目标应用的进程信息,该进程信息中至少包括有目标应用中各线程的线程标识符;
88.确定单元201,具体还用于根据该线程标识符,确定该目标应用的主线程。
89.本技术中,该进程信息中至少包括有目标应用中各线程的负载量参数;
90.确定单元201,具体还用于根据该负载量参数,确定该目标应用的高负载线程。
91.本技术中,该查询单元203,还用于查询预设数据库,所述预设数据库中存储有各类型线程与各内核的映射关系。
92.确定单元201,具体还用于根据预设数据库中各类型线程与各内核的映射关系,确定所述主线程对应的第一目标内核以及所述高负载线程对应的第二目标内核;
93.本技术中,该获取单元204还用于获取所述中央处理器所对应的多个内核的运行参数;
94.确定单元201,具体还用于基于所述运行参数确定所述多个内核中的一级空闲内核和二级空闲内核,其中,所述一级空闲内核的空闲率大于所述二级空闲内核的空闲率;以及将所述一级内核确定为所述第一目标内核;将所述二级内核确定为所述第二目标内核。
95.本技术中,该分配单元202,还用于如果当前处于运行状态的游戏应用为非目标应用,基于所述默认策略分配所述非目标应用的各线程在中央处理器所对应的多个内核中的运行。
96.需要说明的是:上述实施例提供的电子设备在为游戏应用分配资源时,仅以上述各程序模块的划分进行举例说明,实际应用中,可以根据需要而将上述处理分配由不同的程序模块完成,即将装置的内部结构划分成不同的程序模块,以完成以上描述的全部或者部分处理。另外,上述实施例提供的电子设备与上述提供的处理方法实施例属于同一构思,其具体实现过程详见方法实施例,这里不再赘述。
97.本技术实施例还提供了一种电子设备,该电子设备包括:处理器和用于存储能够在处理器上运行的计算机程序的存储器,
98.其中,所述处理器用于运行所述计算机程序时,执行:如果当前处于运行状态的游戏应用为目标应用,确定所述目标应用的主线程和高负载线程;将所述主线程绑定到第一目标内核运行以及将所述高负载线程绑定到第二目标内核运行;基于默认策略分配所述目标应用的其余线程在中央处理器所对应的多个内核中的运行。
99.所述处理器还用于运行所述计算机程序时,执行:基于默认策略分配所述目标应用的其余线程运行在所述中央处理器所对应的多个内核中的非第一目标内核和非第二目标内核。
100.所述处理器还用于运行所述计算机程序时,执行:在预设数据包列表中查找所述游戏应用的数据包名;如果在所述预设数据包列表中查找到所述游戏应用的数据包名,确定当前处于运行状态的游戏应用为目标应用;或者,在预设进程列表中查找所述游戏应用的进程标识符;如果在所述预设进程列表中查找到所述游戏应用的进程标识符,确定当前处于运行状态的游戏应用为目标应用;或者,确定所述游戏应用的线程标识符中是否有预设标识;如果所述游戏应用的线程标识符中有预设标识,确定当前处于运行状态的游戏应用为目标应用。
101.所述处理器还用于运行所述计算机程序时,执行:获取所述目标应用的进程信息,所述进程信息中至少包括所述目标应用中各线程的线程标识符;根据所述线程标识符,确定所述目标应用的主线程。
102.所述处理器还用于运行所述计算机程序时,执行:获取所述目标应用的进程信息,所述进程信息中至少包括所述目标应用中各线程的负载量参数;根据所述负载量参数,确定所述目标应用的高负载线程。
103.所述处理器还用于运行所述计算机程序时,执行:查询预设数据库,以确定所述主线程对应的第一目标内核以及所述高负载线程对应的第二目标内核;所述预设数据库中存储有各类型线程与各内核的映射关系。
104.所述处理器还用于运行所述计算机程序时,执行:获取所述中央处理器所对应的多个内核的运行参数;基于所述运行参数确定所述多个内核中的一级空闲内核和二级空闲内核,其中,所述一级空闲内核的空闲率大于所述二级空闲内核的空闲率;将所述一级内核确定为所述第一目标内核;将所述二级内核确定为所述第二目标内核。
105.所述处理器还用于运行所述计算机程序时,执行:如果当前处于运行状态的游戏应用为非目标应用,基于所述默认策略分配所述非目标应用的各线程在中央处理器所对应的多个内核中的运行。
106.图3是本技术中电子设备的结构组成示意图二,电子设备300可以是移动电话、计算机、数字广播终端、信息收发设备、游戏控制台、平板设备、健身设备、个人数字助理、等具有游戏功能的终端。图3所示的电子设备300包括:至少一个处理器301、存储器302、至少一个网络接口304和用户接口303。电子设备300中的各个组件通过总线系统305耦合在一起。可理解,总线系统305用于实现这些组件之间的连接通信。总线系统305除包括数据总线之外,还包括电源总线、控制总线和状态信号总线。但是为了清楚说明起见,在图3中将各种总线都标为总线系统305。
107.其中,用户接口303可以包括显示器、键盘、鼠标、轨迹球、点击轮、按键、按钮、触感板或者触摸屏等。
108.可以理解,存储器302可以是易失性存储器或非易失性存储器,也可包括易失性和非易失性存储器两者。其中,非易失性存储器可以是只读存储器(rom,read only memory)、可编程只读存储器(prom,programmable read

only memory)、可擦除可编程只读存储器(eprom,erasable programmable read

only memory)、电可擦除可编程只读存储器
(eeprom,electrically erasable programmable read

only memory)、磁性随机存取存储器(fram,ferromagnetic random access memory)、快闪存储器(flash memory)、磁表面存储器、光盘、或只读光盘(cd

rom,compact disc read

only memory);磁表面存储器可以是磁盘存储器或磁带存储器。易失性存储器可以是随机存取存储器(ram,random access memory),其用作外部高速缓存。通过示例性但不是限制性说明,许多形式的ram可用,例如静态随机存取存储器(sram,static random access memory)、同步静态随机存取存储器(ssram,synchronous static random access memory)、动态随机存取存储器(dram,dynamic random access memory)、同步动态随机存取存储器(sdram,synchronous dynamic random access memory)、双倍数据速率同步动态随机存取存储器(ddrsdram,double data rate synchronous dynamic random access memory)、增强型同步动态随机存取存储器(esdram,enhanced synchronous dynamic random access memory)、同步连接动态随机存取存储器(sldram,synclink dynamic random access memory)、直接内存总线随机存取存储器(drram,direct rambus random access memory)。本技术实施例描述的存储器302旨在包括但不限于这些和任意其它适合类型的存储器。
109.本技术实施例中的存储器302用于存储各种类型的数据以支持电子设备300的操作。这些数据的示例包括:用于在电子设备300上操作的任何计算机程序,如操作系统3021和应用程序3022;联系人数据;电话簿数据;消息;图片;音频等。其中,操作系统3021包含各种系统程序,例如框架层、核心库层、驱动层等,用于实现各种基础业务以及处理基于硬件的任务。应用程序3022可以包含各种应用程序,例如媒体播放器(media player)、浏览器(browser)等,用于实现各种应用业务。实现本技术实施例方法的程序可以包含在应用程序3022中。
110.上述本技术实施例揭示的方法可以应用于处理器301中,或者由处理器301实现。处理器301可能是一种集成电路芯片,具有信号的处理能力。在实现过程中,上述方法的各步骤可以通过处理器301中的硬件的集成逻辑电路或者软件形式的指令完成。上述的处理器301可以是通用处理器、数字信号处理器(dsp,digital signal processor),或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件等。处理器301可以实现或者执行本技术实施例中的公开的各方法、步骤及逻辑框图。通用处理器可以是微处理器或者任何常规的处理器等。结合本技术实施例所公开的方法的步骤,可以直接体现为硬件译码处理器执行完成,或者用译码处理器中的硬件及软件模块组合执行完成。软件模块可以位于存储介质中,该存储介质位于存储器302,处理器301读取存储器302中的信息,结合其硬件完成前述方法的步骤。
111.在示例性实施例中,电子设备300可以被一个或多个应用专用集成电路(asic,application specific integrated circuit)、dsp、可编程逻辑器件(pld,programmable logic device)、复杂可编程逻辑器件(cpld,complex programmable logic device)、现场可编程门阵列(fpga,field

programmable gate array)、通用处理器、控制器、微控制器(mcu,micro controller unit)、微处理器(microprocessor)、或其他电子元件实现,用于执行前述方法。
112.在示例性实施例中,本技术实施例还提供了一种计算机可读存储介质,例如包括计算机程序的存储器302,上述计算机程序可由电子设备300的处理器301执行,以完成前述
方法所述步骤。计算机可读存储介质可以是fram、rom、prom、eprom、eeprom、flash memory、磁表面存储器、光盘、或cd

rom等存储器;也可以是包括上述存储器之一或任意组合的各种设备,如移动电话、计算机、平板设备、个人数字助理等。
113.一种计算机可读存储介质,其上存储有计算机程序,该计算机程序被处理器运行时,执行:如果当前处于运行状态的游戏应用为目标应用,确定所述目标应用的主线程和高负载线程;将所述主线程绑定到第一目标内核运行以及将所述高负载线程绑定到第二目标内核运行;基于默认策略分配所述目标应用的其余线程在中央处理器所对应的多个内核中的运行。
114.该计算机程序被处理器运行时,还执行:基于默认策略分配所述目标应用的其余线程运行在所述中央处理器所对应的多个内核中的非第一目标内核和非第二目标内核。
115.该计算机程序被处理器运行时,还执行:在预设数据包列表中查找所述游戏应用的数据包名;如果在所述预设数据包列表中查找到所述游戏应用的数据包名,确定当前处于运行状态的游戏应用为目标应用;或者,在预设进程列表中查找所述游戏应用的进程标识符;如果在所述预设进程列表中查找到所述游戏应用的进程标识符,确定当前处于运行状态的游戏应用为目标应用。
116.该计算机程序被处理器运行时,还执行:获取所述目标应用的进程信息,所述进程信息中至少包括所述目标应用中各线程的线程标识符;根据所述线程标识符,确定所述目标应用的主线程。
117.该计算机程序被处理器运行时,还执行:获取所述目标应用的进程信息,所述进程信息中至少包括所述目标应用中各线程的负载量参数;根据所述负载量参数,确定所述目标应用的高负载线程。
118.该计算机程序被处理器运行时,还执行:查询预设数据库,以确定所述主线程对应的第一目标内核以及所述高负载线程对应的第二目标内核;所述预设数据库中存储有各类型线程与各内核的映射关系。
119.该计算机程序被处理器运行时,还执行:获取所述中央处理器所对应的多个内核的运行参数;基于所述运行参数确定所述多个内核中的一级空闲内核和二级空闲内核,其中,所述一级空闲内核的空闲率大于所述二级空闲内核的空闲率;将所述一级内核确定为所述第一目标内核;将所述二级内核确定为所述第二目标内核。
120.该计算机程序被处理器运行时,还执行:如果当前处于运行状态的游戏应用为非目标应用,基于所述默认策略分配所述非目标应用的各线程在中央处理器所对应的多个内核中的运行。
121.在本技术所提供的几个实施例中,应该理解到,所揭露的设备和方法,可以通过其它的方式实现。以上所描述的设备实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,如:多个单元或组件可以结合,或可以集成到另一个系统,或一些特征可以忽略,或不执行。另外,所显示或讨论的各组成部分相互之间的耦合、或直接耦合、或通信连接可以是通过一些接口,设备或单元的间接耦合或通信连接,可以是电性的、机械的或其它形式的。
122.上述作为分离部件说明的单元可以是、或也可以不是物理上分开的,作为单元显示的部件可以是、或也可以不是物理单元,即可以位于一个地方,也可以分布到多个网络单
元上;可以根据实际的需要选择其中的部分或全部单元来实现本实施例方案的目的。
123.本技术所提供的几个方法实施例中所揭露的方法,在不冲突的情况下可以任意组合,得到新的方法实施例。
124.本技术所提供的几个产品实施例中所揭露的特征,在不冲突的情况下可以任意组合,得到新的产品实施例。
125.本技术所提供的几个方法或设备实施例中所揭露的特征,在不冲突的情况下可以任意组合,得到新的方法实施例或设备实施例。
126.以上所述,仅为本技术的具体实施方式,但本技术的保护范围并不局限于此,任何熟悉本技术领域的技术人员在本技术揭露的技术范围内,可轻易想到变化或替换,都应涵盖在本技术的保护范围之内。因此,本技术的保护范围应以所述权利要求的保护范围为准。
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1