CN109947569A - 绑定核心的方法、装置、终端及存储介质 - Google Patents
绑定核心的方法、装置、终端及存储介质 Download PDFInfo
- Publication number
- CN109947569A CN109947569A CN201910198933.9A CN201910198933A CN109947569A CN 109947569 A CN109947569 A CN 109947569A CN 201910198933 A CN201910198933 A CN 201910198933A CN 109947569 A CN109947569 A CN 109947569A
- Authority
- CN
- China
- Prior art keywords
- thread
- core
- performance
- performance core
- subject
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Granted
Links
Landscapes
- Stored Programmes (AREA)
- Mobile Radio Communication Systems (AREA)
Abstract
本申请实施例公开了一种绑定核心的方法、装置、终端及存储介质,属于终端技术领域。所述方法用于具有多核处理器的终端,所述方法包括:获取前台应用程序中各个线程的线程负载信息;若线程负载信息指示目标线程阻塞前台应用程序的主线程,则将目标线程绑定到第一性能核心,主线程是预先与第一性能核心绑定的线程;对主线程和第一性能核心进行解绑操作,并将解绑后的主线程绑定到所述第二性能核心。由于第一性能核心的性能高于第二性能核心的性能,因此采用上述核心动态绑定机制后,目标线程在第一性能核心上能够尽快执行完毕,从而避免目标线程长时间执行造成的主线程阻塞,进而提高前台应用程序的运行流畅度。
Description
技术领域
本申请实施例涉及终端技术领域,特别涉及一种绑定核心的方法、装置、终端及存储介质。
背景技术
多核处理器(Multi-core processor)是指集成有至少两个处理核心(Core)的中央处理器(Central Processing Unit,CPU)。通常情况下,多核处理器通常包含若干个大核和若干个小核,其中,大核的性能和功耗高于小核的性能和功耗。
应用程序运行过程中,存在多个线程交互执行的情况。为了提高应用程序的运行流畅度,终端通过将负载较大的线程绑定在大核上运行,确保负载较大的线程一直在大核上运行。比如,对于游戏应用程序,由于渲染线程和逻辑线程的负载较大,因此终端通常将渲染线程和逻辑线程绑定在两个大核上运行。
发明内容
本申请实施例提供了一种绑定核心的方法、装置、终端及存储介质。所述技术方案如下:
一方面,本申请实施例提供了一种绑定核心的方法,所述方法用于具有多核处理器的终端,所述多核处理器包括至少一个第一性能核心和至少一个第二性能核心,所述第一性能核心的性能高于所述第二性能核心的性能,所述方法包括:
获取前台应用程序中各个线程的线程负载信息;
若所述线程负载信息指示目标线程阻塞所述前台应用程序的主线程,则将所述目标线程绑定到所述第一性能核心,所述主线程是预先与所述第一性能核心绑定的线程;
对所述主线程和所述第一性能核心进行解绑操作,并将解绑后的所述主线程绑定到所述第二性能核心。
另一方面,本申请实施例提供了一种绑定核心的装置,所述装置用于具有多核处理器的终端,所述多核处理器包括至少一个第一性能核心和至少一个第二性能核心,所述第一性能核心的性能高于所述第二性能核心的性能,所述装置包括:
负载获取模块,用于获取前台应用程序中各个线程的线程负载信息;
第一绑定模块,用于当所述线程负载信息指示目标线程阻塞所述前台应用程序的主线程时,将所述目标线程绑定到所述第一性能核心,所述主线程是预先与所述第一性能核心绑定的线程;
第二绑定模块,用于当对所述主线程和所述第一性能核心进行解绑操作,并将解绑后的所述主线程绑定到所述第二性能核心。
另一方面,提供了一种终端,所述终端包括处理器和存储器;所述存储器存储有至少一条指令,所述至少一条指令用于被所述处理器执行以实现如上述方面所述的绑定核心的方法。
另一方面,提供了一种计算机可读存储介质,所述存储介质存储有至少一条指令,所述至少一条指令用于被处理器执行以实现如上述方面所述的绑定核心的方法。
本申请实施例中,通过获取前台应用程序中各个线程的线程负载信息,并在线程负载信息指示前台应用程序的主线程被目标线程阻塞时,将目标线程绑定至第一性能核心执行,并将原先绑定在第一性能核心的主线程绑定到第二性能核心;由于第一性能核心的性能高于第二性能核心的性能,因此采用上述核心动态绑定机制后,目标线程在第一性能核心上能够尽快执行完毕,从而避免目标线程长时间执行造成的主线程阻塞,进而提高前台应用程序的运行流畅度。
附图说明
图1示出了本申请一个示例性实施例所提供的终端的结构示意图;
图2示出了本申请一个示例性实施例示出的绑定核心的方法的流程图;
图3是图2所示绑定核心方法的原理示意图;
图4示出了本申请另一个示例性实施例示出的绑定核心的方法的流程图;
图5是图4所示绑定核心方法的原理示意图;
图6示出了本申请另一个示例性实施例示出的绑定核心的方法的流程图;
图7示出了本申请一个实施例提供的绑定核心的装置的结构框图。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
在本文中提及的“多个”是指两个或两个以上。“和/或”,描述关联对象的关联关系,表示可以存在三种关系,例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B这三种情况。字符“/”一般表示前后关联对象是一种“或”的关系。
请参考图1,其示出了本申请一个示例性实施例所提供的终端的结构示意图。
可选的,该终端120中包括:处理器122和存储器124。
处理器122利用各种接口和线路连接整个终端120内的各个部分,通过运行或执行存储在存储器124内的指令、程序、代码集或指令集,以及调用存储在存储器124内的数据,执行终端100的各种功能和处理数据。可选的,处理器122可以采用数字信号处理(DigitalSignal Processing,DSP)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)、可编程逻辑阵列(Programmable Logic Array,PLA)中的至少一种硬件形式来实现。处理器122可集成中央处理器(Central Processing Unit,CPU)、图像处理器(GraphicsProcessing Unit,GPU)和调制解调器等中的一种或几种的组合。其中,CPU主要处理操作系统、用户界面和应用程序等;GPU用于负责显示屏所需要显示的内容的渲染和绘制;调制解调器用于处理无线通信。可以理解的是,上述调制解调器也可以不集成到处理器122中,单独通过一块芯片进行实现。
本申请实施例中,处理器122为多核处理器,其中包含至少一个第一性能核心(也可以被称为高性能核心或者大核)和至少一个第二性能核心(也可以被称为低性能核心或者小核),其中,第一性能核心的性能高于第二性能核心的性能,而第二性能核心的功耗高于第一性能核心的功耗。
比如,如图1所示,处理器122中包含4个第一性能核心122A以及4个第二性能核心122B。
存储器124可以包括随机存储器(Random Access Memory,RAM),也可以包括只读存储器(Read-Only Memory)。可选的,该存储器140包括非瞬时性计算机可读介质(non-transitory computer-readable storage medium)。存储器124可用于存储指令、程序、代码、代码集或指令集。存储器124可包括存储程序区和存储数据区,其中,存储程序区可存储用于实现操作系统的指令、用于至少一个功能的指令(比如触控功能、声音播放功能、图像播放功能等)、用于实现下述各个方法实施例的指令等;存储数据区可存储下面各个方法实施例中涉及到的数据等。
除了包含处理器122和存储器124之外,终端120还可以包含显示屏。显示屏是用于显示图像的组件。显示屏可以仅具有图像显示功能,也可以同时具有图像显示以及接收触摸操作的功能,即该显示屏可以为触摸显示屏。并且,显示屏可以是全面屏、异形屏、折叠屏、曲面屏或其他形式的屏幕,本申请实施例并不对此进行限定。
当然,终端120还可以包含拍照组件(比如摄像头)、距离传感器、加速度传感器、角速度传感器、定位组件、红外组件、蓝牙组件等其他组件,本申请实施例并不对终端120的具体结构构成限定。
相关技术中,为了保证应用程序的运行流畅度,应用程序中的复杂线程(包括主线程)通常与第一性能核心绑定,即复杂线程一直运行在第一性能核心上。在示意性的例子中,对于游戏应用程序来讲,其中的渲染线程和逻辑线程相较于其他线程的负载更大,因此这两个线程通常与第一性能核心绑定。
在应用程序运行过程中,可能会突然出现其他任务。为了提高对突然出现的任务的处理效率,终端通常采用多线程机制,将突然出现的任务分配到多个处理器核心上并行执行。
然而,在上述机制下,由于复杂线程已经与部分第一性能核心绑定,且第一性能核心的数量有限,导致任务的部分线程在第二性能核心上执行。受限于第二性能核心的处理能力,这部分线程的处理速度较慢,容易造成主线程的阻塞。
在示意性的例子中,当终端的处理器包含四个第一性能核心和四个第二性能核心时,由于游戏应用程序的渲染线程和逻辑线程已经占用了两个第一性能核心,因此当需要通过四个并行线程处理突然出现的任务时,有两个线程必须在第二性能核心上运行。
为了解决运行过程中突然出现的任务对应用程序主线程造成的阻塞,本申请实施例中提出了一种核心动态绑定机制,采用该核心动态绑定机制后,当检测到出现阻塞主线程的线程时,终端将该线程绑定到第一性能核心,将主线程临时绑定到第二性能核心,从而提高该线程的执行速度,以此缓解对主线程的阻塞。下面采用示意性的实施例进行说明。
请参考图2,其示出了本申请一个示例性实施例示出的绑定核心的方法的流程图。本实施例以该方法应用于图1所示的终端120来举例说明。该方法包括:
步骤201,获取前台应用程序中各个线程的线程负载信息。
由于前台应用程序的线程的运行情况将直接影响到前台应用程序的运行流畅度,因此,本实施例中,终端仅获取前台应用程序中各个线程的线程负载信息,而不会获取其他应用程序的线程的线程负载信息。
可选的,前台应用程序为视频播放应用程序、游戏应用程序、社交应用程序、即时通信应用程序、购物应用程序等等,本申请实施例对此不做限定。
在一种可能的实施方式中,终端通过获取各个线程在性能核心上的运行时长,确定各个线程的复杂,其中,线程在性能核心上的运行时长越长,表明其负载越大。
示意性的,以前台应用程序为游戏应用程序为例,如图3所示,处理器122中包含四个第一性能核心122A和四个第二性能核心122B,且游戏应用程序的渲染线程31和逻辑线程32(主线程)分别绑定并运行在第一性能核心122A,而第一目标线程33和第二目标线程34运行在第一性能核心122A,第三目标线程35和第四目标线程36则运行在第二性能核心122B。终端获取的线程负载信息中即包含渲染线程31、逻辑线程32、第一目标线程33、第二目标线程34、第三目标线程35和第四目标线程36的负载。
可选的,由于阻塞主线程的线程通常运行在第二性能核心上,因此终端可以仅获取第二性能核心上线程的线程负载信息,本实施对此不做限定。比如,在图3中,终端可以仅获取第一目标线程33、第二目标线程34、第三目标线程35和第四目标线程36的负载。
步骤202,若线程负载信息指示目标线程阻塞前台应用程序的主线程,则将目标线程绑定到第一性能核心,主线程是预先与第一性能核心绑定的线程。
不同于相关技术中,主线程与第一性能核心之间的绑定关系不可变更,本申请实施例中采用动态核心绑定机制,当线程负载信息指示目标线程对主线程造成阻塞时,终端将原先运行在第二性能核心的目标线程绑定到第一性能核心,由于第一性能核心的性能高于第二性能核心的性能,因此切换绑定后能够提高目标线程的执行速度,进而缩短主线程的阻塞时长。
示意性的,如图3所示,当检测到第三目标线程35和第四目标线程36阻塞主线程(渲染线程31和逻辑线程32)时,终端将第三目标线程35和四目标线程35绑定到第一性能核心122A执行。
步骤203,对主线程和第一性能核心进行解绑操作,并将解绑后的主线程绑定到第二性能核心。
在一种可能的实施方式中,终端对主线程和第一性能核心进行解绑操作,从而释放出用于执行目标线程的第一性能核心,并将主线程绑定到第二性能核心上。
示意性的,如图3所示,终端将解绑后的渲染线程31以及逻辑线程32绑定到第二性能核心122B。
需要说明的是,上述步骤202和203之间并不存在严格的先后时序,即步骤202和203可以同时执行,本实施例仅以步骤202在步骤203之前执行为例进行示意性说明,但并不对此构成限定。
综上所述,本申请实施例中,通过获取前台应用程序中各个线程的线程负载信息,并在线程负载信息指示前台应用程序的主线程被目标线程阻塞时,将目标线程绑定至第一性能核心执行,并将原先绑定在第一性能核心的主线程绑定到第二性能核心;由于第一性能核心的性能高于第二性能核心的性能,因此采用上述核心动态绑定机制后,目标线程在第一性能核心上能够尽快执行完毕,从而避免目标线程长时间执行造成的主线程阻塞,进而提高前台应用程序的运行流畅度。
请参考图4,其示出了本申请另一个示例性实施例示出的绑定核心的方法的流程图。本实施例以该方法应用于图1所示的终端120来举例说明。该方法包括:
步骤401,获取前台应用程序的当前运行场景。
由于重负载线程通常出现在特定的运行场景,因此在一种可能的实施方式中,终端获取前台应用程序的当前运行场景,并检测当前运行场景是否属于预设运行场景,若属于,则执行步骤402,若不属于,则不会对线程进行负载检测。其中,该预设运行场景为应用程序运行过程中出现重负载线程的运行场景。可选的,该预设运行场景基于应用程序在不同运行场景下的历史运行数据分析得到。
针对获取当前运行场景的方式,在一种可能的实施方式中,该前台应用程序调用内嵌软件开发包(Software Development Kit,SDK)提供的应用程序编程接口(Application Programming Interface,API),向终端操作系统发送当前运行场景的场景信息;或者,前台应用程序通过与终端操作系统之间建立的套接字(socket)连接向终端操作系统发送当前运行场景的场景信息;或者,前台应用程序过与终端操作系统之间建立的粘合(binder)连接向终端操作系统发送当前运行场景的场景信息。本申请实施例对此不做限定。
步骤402,若当前运行场景属于预设运行场景,则获取前台应用程序中各个线程的线程负载信息。
若当前运行场景属于预设运行场景时,表明当前运行场景下有较大概率会出现阻塞主线程的其他重负载线程,因此,终端获取前台应用程序中各个线程的线程负载信息。
在一种可能的应用场景下,当前台应用程序为游戏应用程序时,该预设运行场景包括垃圾回收(Garbage Collection,GC)场景、地图加载场景和团战场景中的至少一种。
步骤403,确定主线程对应的目标线程,其中,主线程等待目标线程执行结束后执行。
在一种可能的实施方式中,当主线程需要在目标线程执行结束后执行时,若目标线程为重负载线程,则目标线程执行时间过长将会造成主线程阻塞。因此,本实施例中,终端从前台应用程序的多个线程中,确定出会对主线程造成阻塞的目标线程。
可选的,主线程对应的目标线程可以预先设置,也可以由终端根据线程之间的等待和唤醒关系确定,本实施例对此不做限定。
在一个示意性的例子中,游戏应用程序的当前运行场景为GC场景时,由于渲染线程和逻辑线程需要等待垃圾回收线程执行完毕后才会执行,因此终端将垃圾回收线程确定为目标线程。
步骤404,从线程负载信息中获取目标线程的负载。
进一步的,终端从线程负载信息中获取该目标线程的负载。
步骤405,若目标线程的负载大于负载阈值,则确定目标线程阻塞主线程,并将目标线程绑定到第一性能核心。
当目标线程的负载大于负载阈值(比如90%,即目标线程的执行时间占处理器核心处理时间的90%)时,终端确定目标线程为重负载线程。由于重负载线程在第二性能核心上执行的时间较长,因此该目标线程会对主线程执行造成阻塞。
可选的,当目标线程的负载小于负载阈值时,终端确定目标线程不会阻塞主线程,并继续将目标线程绑定在第二性能核心上运行。
为了进一步提高阻塞判断的准确性,在一种可能的实施方式中,终端根据目标线程的执行时间、目标线程的负载以及前台应用程序的运行时长等数据,确定目标应用程序当前的卡顿因子,从而根据该卡顿因子确定是否需要切换绑定核心。若卡顿因子大于卡顿因子阈值,则将目标线程绑定到第一性能核心;若卡顿因子小于卡顿因子阈值,则保持目标线程在第二性能核心上执行。
步骤406,根据目标线程的负载,上调第一性能核心的工作频率。
在一种可能的实施方式中,将目标线程绑定到第一性能核心后,第一性能核心保持原始的工作频率。
为了进一步缩短目标线程的执行时间,降低主线程的阻塞时长,在另一种可能的实施方式中,终端根据目标线程的负载,上调第一性能核心的工作频率,其中,工作频率的上调幅度与目标线程的负载呈正相关关系,即目标线程的负载越高,第一性能核心的工作频率上调幅度越大。
在一个示意性的例子中,工作频率的上调幅度与目标线程的负载的对应关系如表一所示。
表一
目标线程的负载 | 工作频率的上调幅度 |
90% | 10% |
95% | 20% |
当然,终端也可以根据预设的上调幅度调整第一性能核心的工作频率,而无需参考目标线程的负载,本实施例对此不做限定。
步骤407,对主线程和第一性能核心进行解绑操作,并将解绑后的主线程绑定到第二性能核心。
可选的,由于主线程需要等待目标线程执行结束后才会执行,因此,在目标线程执行期间,主线程并不会在第二性能核心上运行。
步骤408,当目标线程执行结束时,对目标线程和第一性能核心进行解绑操作。
当目标线程在第一性能核心上执行结束时,主线程即从阻塞状态中恢复,为了保证主线程的执行速度,终端将目标线程与第一性能核心解绑,以便后续重新将主线程绑定到第一性能核心上。
可选的,解绑后的目标线程重新绑定到第二性能核心。
示意性的,如图5所示,第三目标线程35和第四目标线程36执行结束后与第一性能核心122A解绑,并重新绑定到第二性能核心122B。
步骤409,对主线程和第二性能核心进行解绑操作,并将解绑后的主线程绑定到第一性能核心。
进一步的,终端将主线程与第二性能核心解绑,并重新将主线程绑定到第一性能核心,使得主线程在第一性能核心上执行。
示意性的,如图5所示,第三目标线程35和第四目标线程36执行结束后,终端重新将渲染线程31和逻辑线程32绑定到第一性能核心122A上执行。
可选的,重新将主线程绑定至第一性能核心后,终端将第一性能核心的工作频率恢复至初始值(由于上述步骤406中进行了提频)。
本实施例中,通过设置容易发生主线程阻塞的预设运行场景,并在当前运行场景属于预设运行场景时进行线程负载检测,能够避免在低阻塞概率的运行场景下进行线程负载检测造成的处理资源浪费。
另外,终端将阻塞主线程的目标线程绑定到第一性能核心后,根据目标线程的负载情况对第一性能核心进行提频,进一步缩短了目标线程在第一性能核心上的执行时长,降低主线程的阻塞时间。
线程的执行时间除了与处理器核心的性能相关外,还与其他系统资源相关,为了进一步缩短目标线程的执行时间,在一种可能的实施方式中,如图6所示,步骤405之后还可以包括如下步骤。
步骤410,根据当前运行场景对应的系统资源优化策略,优化与当前运行场景相关的系统资源,系统资源包括内存的输入输出(Input/Output,IO)频率和GPU的工作频率中的至少一种。
在一种可能的实施方式中,终端中预先存储有各个运行场景对应的系统资源优化策略,该系统资源优化策略中包含与影响应用程序运行质量的先关系统资源的优化信息。将目标线程绑定至第一性能核心后,终端进一步获取当前运行场景对应的系统资源优化策略,从而根据该系统资源优化策略对当前运行场景相关的系统资源进行优化。
在一个示意性的例子中,终端获取到当前运行场景为地图加载场景,并获取到对应的资源优化策略为内存IO频率提高10%,从而将GPU的工作频率上调10%。
步骤411,收集当前运行场景下目标线程的线程运行数据。
由于不同终端的系统资源配置存在差异,因此为了提高系统资源优化策略与当前终端的适配度,在一种可能的实施方式中,根据原始的系统资源优化策略进行系统资源优化后,终端对当前运行场景下目标线程的线程运行数据进行收集,以便后续基于线程运行数据对系统资源优化策略进行更新。
可选的,该线程运行数据包括目标线程的运行时间。
可选的,终端手机当前运行场景下的帧率等参数。
步骤412,根据线程运行数据,更新系统资源优化策略,并将系统资源优化策略与当前运行场景进行关联存储。
在一种可能的实施方式中,当线程运行数据低于线程运行指标时,终端提高系统资源优化策略所指示系统资源的运行参数;当线程运行数据达到线程运行指标时,终端保持系统资源优化策略所指示系统资源的运行参数。
完成系统资源优化策略更新后,终端对更新后的系统资源优化策略与当前运行场景进行关联存储,后续再次运行至该应用场景时,终端即根据更新后的系统资源优化策略对相关系统资源进行优化。
本实施例中,终端根据当前运行场景对应的系统资源优化策略,对当前运行场景相关的系统资源进行优化,进一步缩短目标线程在第一性能核心上的运行时长;此外,终端通过收集目标线程的线程运行参数,对系统资源优化策略进行反向更新,提高系统资源优化策略的优化效果。
请参考图7,其示出了本申请一个实施例提供的绑定核心的装置的结构框图。该绑定核心的装置可以通过软件、硬件或者两者的结合实现成为终端120的全部或一部分。该装置包括:
负载获取模块701,用于获取前台应用程序中各个线程的线程负载信息;
第一绑定模块702,用于当所述线程负载信息指示目标线程阻塞所述前台应用程序的主线程时,将所述目标线程绑定到所述第一性能核心,所述主线程是预先与所述第一性能核心绑定的线程;
第二绑定模块703,用于当对所述主线程和所述第一性能核心进行解绑操作,并将解绑后的所述主线程绑定到所述第二性能核心。
可选的,所述第一绑定模块702,用于:
确定所述主线程对应的所述目标线程,其中,所述主线程等待所述目标线程执行结束后执行;
从所述线程负载信息中获取所述目标线程的负载;
若所述目标线程的负载大于负载阈值,则确定所述目标线程阻塞所述主线程,并将所述目标线程绑定到所述第一性能核心。
可选的,所述装置还包括:
调频模块,用于根据所述目标线程的负载,上调所述第一性能核心的工作频率,其中,所述工作频率的上调幅度与所述目标线程的负载呈正相关关系。
可选的,所述负载获取模块701,用于:
获取所述前台应用程序的当前运行场景;
若所述当前运行场景属于预设运行场景,则获取所述前台应用程序中各个线程的所述线程负载信息;
其中,当所述前台应用程序为游戏应用程序时,所述预设运行场景包括垃圾回收GC场景、地图加载场景和团战场景中的至少一种。
可选的,所述装置还包括:
优化模块,用于根据所述当前运行场景对应的系统资源优化策略,优化与所述当前运行场景相关的系统资源,所述系统资源包括内存的输入输出IO频率和图形处理器GPU的工作频率中的至少一种。
可选的,所述装置还包括:
数据收集模块,用于收集所述当前运行场景下所述目标线程的线程运行数据;
更新模块,用于根据所述线程运行数据,更新所述系统资源优化策略,并将所述系统资源优化策略与所述当前运行场景进行关联存储。
可选的,所述装置还包括:
解绑模块,用于当所述目标线程执行结束时,对所述目标线程和所述第第一性能核心进行解绑操作;
第三绑定模块,用于对所述主线程和所述第二性能核心进行解绑操作,并将解绑后的所述主线程绑定到所述第一性能核心。
综上所述,本申请实施例中,通过获取前台应用程序中各个线程的线程负载信息,并在线程负载信息指示前台应用程序的主线程被目标线程阻塞时,将目标线程绑定至第一性能核心执行,并将原先绑定在第一性能核心的主线程绑定到第二性能核心;由于第一性能核心的性能高于第二性能核心的性能,因此采用上述核心动态绑定机制后,目标线程在第一性能核心上能够尽快执行完毕,从而避免目标线程长时间执行造成的主线程阻塞,进而提高前台应用程序的运行流畅度。
本申请实施例还提供了一种计算机可读介质,该计算机可读介质存储有至少一条指令,所述至少一条指令由所述处理器加载并执行以实现如上各个实施例所述的绑定核心的方法。
本申请实施例还提供了一种计算机程序产品,该计算机程序产品存储有至少一条指令,所述至少一条指令由所述处理器加载并执行以实现如上各个实施例所述的绑定核心的方法。
本领域技术人员应该可以意识到,在上述一个或多个示例中,本申请实施例所描述的功能可以用硬件、软件、固件或它们的任意组合来实现。当使用软件实现时,可以将这些功能存储在计算机可读介质中或者作为计算机可读介质上的一个或多个指令或代码进行传输。计算机可读介质包括计算机存储介质和通信介质,其中通信介质包括便于从一个地方向另一个地方传送计算机程序的任何介质。存储介质可以是通用或专用计算机能够存取的任何可用介质。
以上所述仅为本申请的较佳实施例,并不用以限制本申请,凡在本申请的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本申请的保护范围之内。
Claims (10)
1.一种绑定核心的方法,其特征在于,所述方法用于具有多核处理器的终端,所述多核处理器包括至少一个第一性能核心和至少一个第二性能核心,所述第一性能核心的性能高于所述第二性能核心的性能,所述方法包括:
获取前台应用程序中各个线程的线程负载信息;
若所述线程负载信息指示目标线程阻塞所述前台应用程序的主线程,则将所述目标线程绑定到所述第一性能核心,所述主线程是预先与所述第一性能核心绑定的线程;
对所述主线程和所述第一性能核心进行解绑操作,并将解绑后的所述主线程绑定到所述第二性能核心。
2.根据权利要求1所述的方法,其特征在于,所述若所述线程负载信息指示目标线程阻塞所述前台应用程序的主线程,则将所述目标线程绑定到所述第一性能核心,包括:
确定所述主线程对应的所述目标线程,其中,所述主线程等待所述目标线程执行结束后执行;
从所述线程负载信息中获取所述目标线程的负载;
若所述目标线程的负载大于负载阈值,则确定所述目标线程阻塞所述主线程,并将所述目标线程绑定到所述第一性能核心。
3.根据权利要求1或2所述的方法,其特征在于,所述将所述目标线程绑定到所述第一性能核心之后,所述方法还包括:
根据所述目标线程的负载,上调所述第一性能核心的工作频率,其中,所述工作频率的上调幅度与所述目标线程的负载呈正相关关系。
4.根据权利要求1或2所述的方法,其特征在于,所述获取前台应用程序中各个线程的线程负载信息,包括:
获取所述前台应用程序的当前运行场景;
若所述当前运行场景属于预设运行场景,则获取所述前台应用程序中各个线程的所述线程负载信息;
其中,当所述前台应用程序为游戏应用程序时,所述预设运行场景包括垃圾回收GC场景、地图加载场景和团战场景中的至少一种。
5.根据权利要求4所述的方法,其特征在于,所述将所述目标线程绑定到所述第一性能核心之后,所述方法还包括:
根据所述当前运行场景对应的系统资源优化策略,优化与所述当前运行场景相关的系统资源,所述系统资源包括内存的输入输出IO频率和图形处理器GPU的工作频率中的至少一种。
6.根据权利要求5所述的方法,其特征在于,所述优化与所述当前运行场景相关的系统资源之后,所述方法还包括:
收集所述当前运行场景下所述目标线程的线程运行数据;
根据所述线程运行数据,更新所述系统资源优化策略,并将所述系统资源优化策略与所述当前运行场景进行关联存储。
7.根据权利要求1或2所述的方法,其特征在于,所述方法还包括:
当所述目标线程执行结束时,对所述目标线程和所述第第一性能核心进行解绑操作;
对所述主线程和所述第二性能核心进行解绑操作,并将解绑后的所述主线程绑定到所述第一性能核心。
8.一种绑定核心的装置,其特征在于,所述装置用于具有多核处理器的终端,所述多核处理器包括至少一个第一性能核心和至少一个第二性能核心,所述第一性能核心的性能高于所述第二性能核心的性能,所述装置包括:
负载获取模块,用于获取前台应用程序中各个线程的线程负载信息;
第一绑定模块,用于当所述线程负载信息指示目标线程阻塞所述前台应用程序的主线程时,将所述目标线程绑定到所述第一性能核心,所述主线程是预先与所述第一性能核心绑定的线程;
第二绑定模块,用于当对所述主线程和所述第一性能核心进行解绑操作,并将解绑后的所述主线程绑定到所述第二性能核心。
9.一种终端,其特征在于,所述终端包括处理器和存储器;所述存储器存储有至少一条指令,所述至少一条指令用于被所述处理器执行以实现如权利要求1至7任一所述的绑定核心的方法。
10.一种计算机可读存储介质,其特征在于,所述存储介质存储有至少一条指令,所述至少一条指令用于被处理器执行以实现如权利要求1至7任一所述的绑定核心的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910198933.9A CN109947569B (zh) | 2019-03-15 | 2019-03-15 | 绑定核心的方法、装置、终端及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201910198933.9A CN109947569B (zh) | 2019-03-15 | 2019-03-15 | 绑定核心的方法、装置、终端及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109947569A true CN109947569A (zh) | 2019-06-28 |
CN109947569B CN109947569B (zh) | 2021-04-06 |
Family
ID=67010087
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201910198933.9A Active CN109947569B (zh) | 2019-03-15 | 2019-03-15 | 绑定核心的方法、装置、终端及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN109947569B (zh) |
Cited By (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110347508A (zh) * | 2019-07-02 | 2019-10-18 | Oppo广东移动通信有限公司 | 应用程序的线程分配方法、装置、设备及可读存储介质 |
CN111078394A (zh) * | 2019-11-08 | 2020-04-28 | 苏州浪潮智能科技有限公司 | 一种gpu线程负载均衡方法与装置 |
CN111400002A (zh) * | 2020-03-09 | 2020-07-10 | 聚好看科技股份有限公司 | 应用进程与处理器核绑定方法及终端 |
CN111831414A (zh) * | 2020-07-01 | 2020-10-27 | Oppo广东移动通信有限公司 | 线程迁移方法、装置、存储介质及电子设备 |
CN112486684A (zh) * | 2020-11-30 | 2021-03-12 | 展讯半导体(成都)有限公司 | 行车影像显示方法、装置及平台、存储介质、嵌入式设备 |
CN112631415A (zh) * | 2020-12-31 | 2021-04-09 | Oppo(重庆)智能科技有限公司 | Cpu频率调整方法、装置、电子设备及存储介质 |
CN112860593A (zh) * | 2021-02-09 | 2021-05-28 | 山东英信计算机技术有限公司 | 一种存储系统的gc性能预测方法、系统、介质及设备 |
CN113842642A (zh) * | 2021-09-29 | 2021-12-28 | 联想(北京)有限公司 | 一种为游戏应用分配资源的方法及电子设备 |
CN114327900A (zh) * | 2021-12-30 | 2022-04-12 | 四川启睿克科技有限公司 | 一种管理双缓冲技术中线程调用防止内存泄漏的方法 |
CN115016885A (zh) * | 2021-11-19 | 2022-09-06 | 荣耀终端有限公司 | 虚拟机垃圾回收运行方法及电子设备 |
CN115220932A (zh) * | 2022-07-13 | 2022-10-21 | 小米汽车科技有限公司 | 通信进程执行方法、装置、车辆、可读存储介质及芯片 |
WO2023051178A1 (zh) * | 2021-09-30 | 2023-04-06 | 荣耀终端有限公司 | 一种任务调度方法、电子设备、芯片系统及存储介质 |
CN116755805A (zh) * | 2023-08-18 | 2023-09-15 | 北京融为科技有限公司 | 应用于c++的资源优化方法及装置 |
CN117130771A (zh) * | 2023-03-30 | 2023-11-28 | 荣耀终端有限公司 | 一种资源调度方法、电子设备及存储介质 |
CN113842642B (zh) * | 2021-09-29 | 2024-05-28 | 联想(北京)有限公司 | 一种为游戏应用分配资源的方法及电子设备 |
Citations (24)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080244226A1 (en) * | 2007-03-29 | 2008-10-02 | Tong Li | Thread migration control based on prediction of migration overhead |
CN101923491A (zh) * | 2010-08-11 | 2010-12-22 | 上海交通大学 | 多核环境下线程组地址空间调度和切换线程的方法 |
CN102141938A (zh) * | 2010-12-03 | 2011-08-03 | 华为技术有限公司 | 多线程系统中软件负荷的调整方法及装置 |
CN102163072A (zh) * | 2008-12-09 | 2011-08-24 | 英特尔公司 | 用于节能的基于软件的线程重映射 |
CN102473112A (zh) * | 2009-09-11 | 2012-05-23 | 英派尔科技开发有限公司 | 关于线程迁移的高速缓存预填充 |
CN102707996A (zh) * | 2012-05-15 | 2012-10-03 | 江苏中科梦兰电子科技有限公司 | 一种异构多核处理器上的任务调度方法 |
CN103294550A (zh) * | 2013-05-29 | 2013-09-11 | 中国科学院计算技术研究所 | 一种异构多核线程调度方法、系统及异构多核处理器 |
CN103631656A (zh) * | 2012-08-21 | 2014-03-12 | 联想(新加坡)私人有限公司 | 大核和小核中的任务调度 |
CN103838353A (zh) * | 2014-01-02 | 2014-06-04 | 深圳市金立通信设备有限公司 | 一种控制处理器运行的方法及终端 |
CN104503830A (zh) * | 2013-03-15 | 2015-04-08 | 英特尔公司 | 用于引导异构系统并呈现对称核视图的方法 |
CN104536822A (zh) * | 2014-12-31 | 2015-04-22 | 中科创达软件股份有限公司 | 一种进程调度优化方法、进程执行方法及相关装置 |
CN104583900A (zh) * | 2012-10-04 | 2015-04-29 | 英特尔公司 | 在处理器的异质核之间动态切换工作载荷 |
CN104572272A (zh) * | 2013-10-12 | 2015-04-29 | 杭州华为数字技术有限公司 | 一种任务调度方法、装置及系统 |
CN105045367A (zh) * | 2015-01-16 | 2015-11-11 | 中国矿业大学 | 基于游戏负载预测的android系统设备功耗优化方法 |
CN105320568A (zh) * | 2014-05-27 | 2016-02-10 | 三星电子株式会社 | 用于任务组迁移的方法和支持该方法的电子设备 |
CN105528330A (zh) * | 2014-09-30 | 2016-04-27 | 杭州华为数字技术有限公司 | 负载均衡的方法、装置、丛集和众核处理器 |
CN106293944A (zh) * | 2016-08-11 | 2017-01-04 | 上海交通大学 | 虚拟化多核环境下基于非一致性i/o访问系统和优化方法 |
CN107506244A (zh) * | 2017-09-13 | 2017-12-22 | 厦门美图移动科技有限公司 | 一种cpu调度方法、移动终端及cpu调度系统 |
CN107528976A (zh) * | 2017-08-31 | 2017-12-29 | 广东欧珀移动通信有限公司 | 资源配置方法及相关产品 |
CN108536538A (zh) * | 2018-03-13 | 2018-09-14 | Oppo广东移动通信有限公司 | 处理器核心调度方法、装置、终端及存储介质 |
CN108549574A (zh) * | 2018-03-12 | 2018-09-18 | 深圳市万普拉斯科技有限公司 | 线程调度管理方法、装置、计算机设备和存储介质 |
CN109117260A (zh) * | 2018-08-30 | 2019-01-01 | 百度在线网络技术(北京)有限公司 | 一种任务调度方法、装置、设备和介质 |
CN109445918A (zh) * | 2018-10-17 | 2019-03-08 | Oppo广东移动通信有限公司 | 任务调度方法、装置、终端及存储介质 |
CN110968415A (zh) * | 2018-09-29 | 2020-04-07 | Oppo广东移动通信有限公司 | 多核处理器的调度方法、装置及终端 |
-
2019
- 2019-03-15 CN CN201910198933.9A patent/CN109947569B/zh active Active
Patent Citations (25)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20080244226A1 (en) * | 2007-03-29 | 2008-10-02 | Tong Li | Thread migration control based on prediction of migration overhead |
CN102163072A (zh) * | 2008-12-09 | 2011-08-24 | 英特尔公司 | 用于节能的基于软件的线程重映射 |
CN104699225A (zh) * | 2008-12-09 | 2015-06-10 | 英特尔公司 | 用于节能的基于软件的线程重映射 |
CN102473112A (zh) * | 2009-09-11 | 2012-05-23 | 英派尔科技开发有限公司 | 关于线程迁移的高速缓存预填充 |
CN101923491A (zh) * | 2010-08-11 | 2010-12-22 | 上海交通大学 | 多核环境下线程组地址空间调度和切换线程的方法 |
CN102141938A (zh) * | 2010-12-03 | 2011-08-03 | 华为技术有限公司 | 多线程系统中软件负荷的调整方法及装置 |
CN102707996A (zh) * | 2012-05-15 | 2012-10-03 | 江苏中科梦兰电子科技有限公司 | 一种异构多核处理器上的任务调度方法 |
CN103631656A (zh) * | 2012-08-21 | 2014-03-12 | 联想(新加坡)私人有限公司 | 大核和小核中的任务调度 |
CN104583900A (zh) * | 2012-10-04 | 2015-04-29 | 英特尔公司 | 在处理器的异质核之间动态切换工作载荷 |
CN104503830A (zh) * | 2013-03-15 | 2015-04-08 | 英特尔公司 | 用于引导异构系统并呈现对称核视图的方法 |
CN103294550A (zh) * | 2013-05-29 | 2013-09-11 | 中国科学院计算技术研究所 | 一种异构多核线程调度方法、系统及异构多核处理器 |
CN104572272A (zh) * | 2013-10-12 | 2015-04-29 | 杭州华为数字技术有限公司 | 一种任务调度方法、装置及系统 |
CN103838353A (zh) * | 2014-01-02 | 2014-06-04 | 深圳市金立通信设备有限公司 | 一种控制处理器运行的方法及终端 |
CN105320568A (zh) * | 2014-05-27 | 2016-02-10 | 三星电子株式会社 | 用于任务组迁移的方法和支持该方法的电子设备 |
CN105528330A (zh) * | 2014-09-30 | 2016-04-27 | 杭州华为数字技术有限公司 | 负载均衡的方法、装置、丛集和众核处理器 |
CN104536822A (zh) * | 2014-12-31 | 2015-04-22 | 中科创达软件股份有限公司 | 一种进程调度优化方法、进程执行方法及相关装置 |
CN105045367A (zh) * | 2015-01-16 | 2015-11-11 | 中国矿业大学 | 基于游戏负载预测的android系统设备功耗优化方法 |
CN106293944A (zh) * | 2016-08-11 | 2017-01-04 | 上海交通大学 | 虚拟化多核环境下基于非一致性i/o访问系统和优化方法 |
CN107528976A (zh) * | 2017-08-31 | 2017-12-29 | 广东欧珀移动通信有限公司 | 资源配置方法及相关产品 |
CN107506244A (zh) * | 2017-09-13 | 2017-12-22 | 厦门美图移动科技有限公司 | 一种cpu调度方法、移动终端及cpu调度系统 |
CN108549574A (zh) * | 2018-03-12 | 2018-09-18 | 深圳市万普拉斯科技有限公司 | 线程调度管理方法、装置、计算机设备和存储介质 |
CN108536538A (zh) * | 2018-03-13 | 2018-09-14 | Oppo广东移动通信有限公司 | 处理器核心调度方法、装置、终端及存储介质 |
CN109117260A (zh) * | 2018-08-30 | 2019-01-01 | 百度在线网络技术(北京)有限公司 | 一种任务调度方法、装置、设备和介质 |
CN110968415A (zh) * | 2018-09-29 | 2020-04-07 | Oppo广东移动通信有限公司 | 多核处理器的调度方法、装置及终端 |
CN109445918A (zh) * | 2018-10-17 | 2019-03-08 | Oppo广东移动通信有限公司 | 任务调度方法、装置、终端及存储介质 |
Cited By (17)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110347508A (zh) * | 2019-07-02 | 2019-10-18 | Oppo广东移动通信有限公司 | 应用程序的线程分配方法、装置、设备及可读存储介质 |
CN111078394A (zh) * | 2019-11-08 | 2020-04-28 | 苏州浪潮智能科技有限公司 | 一种gpu线程负载均衡方法与装置 |
CN111400002A (zh) * | 2020-03-09 | 2020-07-10 | 聚好看科技股份有限公司 | 应用进程与处理器核绑定方法及终端 |
CN111831414A (zh) * | 2020-07-01 | 2020-10-27 | Oppo广东移动通信有限公司 | 线程迁移方法、装置、存储介质及电子设备 |
CN112486684A (zh) * | 2020-11-30 | 2021-03-12 | 展讯半导体(成都)有限公司 | 行车影像显示方法、装置及平台、存储介质、嵌入式设备 |
CN112631415A (zh) * | 2020-12-31 | 2021-04-09 | Oppo(重庆)智能科技有限公司 | Cpu频率调整方法、装置、电子设备及存储介质 |
CN112860593A (zh) * | 2021-02-09 | 2021-05-28 | 山东英信计算机技术有限公司 | 一种存储系统的gc性能预测方法、系统、介质及设备 |
CN113842642A (zh) * | 2021-09-29 | 2021-12-28 | 联想(北京)有限公司 | 一种为游戏应用分配资源的方法及电子设备 |
CN113842642B (zh) * | 2021-09-29 | 2024-05-28 | 联想(北京)有限公司 | 一种为游戏应用分配资源的方法及电子设备 |
WO2023051178A1 (zh) * | 2021-09-30 | 2023-04-06 | 荣耀终端有限公司 | 一种任务调度方法、电子设备、芯片系统及存储介质 |
CN115016885B (zh) * | 2021-11-19 | 2023-11-24 | 荣耀终端有限公司 | 虚拟机垃圾回收运行方法及电子设备 |
CN115016885A (zh) * | 2021-11-19 | 2022-09-06 | 荣耀终端有限公司 | 虚拟机垃圾回收运行方法及电子设备 |
CN114327900A (zh) * | 2021-12-30 | 2022-04-12 | 四川启睿克科技有限公司 | 一种管理双缓冲技术中线程调用防止内存泄漏的方法 |
CN115220932A (zh) * | 2022-07-13 | 2022-10-21 | 小米汽车科技有限公司 | 通信进程执行方法、装置、车辆、可读存储介质及芯片 |
CN117130771A (zh) * | 2023-03-30 | 2023-11-28 | 荣耀终端有限公司 | 一种资源调度方法、电子设备及存储介质 |
CN116755805A (zh) * | 2023-08-18 | 2023-09-15 | 北京融为科技有限公司 | 应用于c++的资源优化方法及装置 |
CN116755805B (zh) * | 2023-08-18 | 2024-02-02 | 北京融为科技有限公司 | 应用于c++的资源优化方法及装置 |
Also Published As
Publication number | Publication date |
---|---|
CN109947569B (zh) | 2021-04-06 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109947569A (zh) | 绑定核心的方法、装置、终端及存储介质 | |
CN107450971B (zh) | 任务处理方法及装置 | |
CN107786730A (zh) | 一种任务管理方法及终端 | |
EP2983117A1 (en) | Event processing method in stream processing system and stream processing system | |
US9928105B2 (en) | Stack overflow prevention in parallel execution runtime | |
CN107301087A (zh) | 一种多线程系统的性能提升方法和装置 | |
DE102015002365A1 (de) | Prioritätsbasierte kontextpräemption | |
US20130036426A1 (en) | Information processing device and task switching method | |
CN102822802A (zh) | 多核处理器系统、控制程序以及控制方法 | |
JP2015532989A (ja) | 中央プロセッサ、およびグラフィックプロセッサ用ハイブリッドエンジン | |
US7586493B1 (en) | System and method for offloading application tasks in a multi-processor environment utilizing a driver | |
CN109445918A (zh) | 任务调度方法、装置、终端及存储介质 | |
CN107391283A (zh) | 一种消息处理方法及装置 | |
CN111159606A (zh) | 应用于楼宇系统的三维模型加载方法、设备和存储介质 | |
US20140031087A1 (en) | Method and device for processing mobile phone data | |
CN104699498B (zh) | 基于Android平台的通过列表控件异步加载图片的优化方法 | |
US10521275B2 (en) | Asynchronous dispatcher for application framework | |
CN105630556B (zh) | 一种加载资源的方法和系统 | |
CN112667335A (zh) | 倒车影像画面加载方法、装置、设备及存储介质 | |
CN109544587A (zh) | 一种抠图处理方法、装置及终端设备 | |
CN105373498B (zh) | 一种数据处理系统及方法 | |
US9483332B2 (en) | Event processing method in stream processing system and stream processing system | |
EP4152203A1 (en) | Sequence processing method and apparatus | |
CN114119374A (zh) | 图像处理方法、装置、设备以及存储介质 | |
CN109753322B (zh) | 一种ios平台上对应用程序的加速方法和装置 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |