CN110825524A - 应用运行优化控制方法及相关产品 - Google Patents
应用运行优化控制方法及相关产品 Download PDFInfo
- Publication number
- CN110825524A CN110825524A CN201911063553.0A CN201911063553A CN110825524A CN 110825524 A CN110825524 A CN 110825524A CN 201911063553 A CN201911063553 A CN 201911063553A CN 110825524 A CN110825524 A CN 110825524A
- Authority
- CN
- China
- Prior art keywords
- task
- auxiliary
- running
- cpu
- main
- 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
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/50—Allocation of resources, e.g. of the central processing unit [CPU]
- G06F9/5005—Allocation of resources, e.g. of the central processing unit [CPU] to service a request
- G06F9/5027—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
- G06F9/505—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the load
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
- G06F9/46—Multiprogramming arrangements
- G06F9/48—Program initiating; Program switching, e.g. by interrupt
- G06F9/4806—Task transfer initiation or dispatching
- G06F9/4843—Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
- G06F9/4881—Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Debugging And Monitoring (AREA)
Abstract
本申请公开了一种应用运行优化控制方法及相关产品,应用于电子设备,所述电子设备的系统级芯片包括第一数量个主中央处理器CPU和第二数量个辅CPU,所述方法包括:在运行目标应用的过程中,获取所述目标应用的主任务所绑定的主CPU在当前检测时间窗口的运行队列和工作频率;根据所述运行队列和所述工作频率判断是否满足任务迁移条件;若根据所述运行队列和所述工作频率判断出满足所述任务迁移条件,则将所述主CPU运行的至少一个辅任务迁移并绑定至辅CPU,所述辅CPU为所述第二数量个辅CPU中的CPU。本申请实施例的方法可以使得电子设备在运行目标应用的过程中,实时检测各项任务的计算资源配置情况,并及时调整资源配置,减少和优化卡顿。
Description
技术领域
本申请涉及通信技术领域,具体涉及一种应用运行优化控制方法及相关产品。
背景技术
现在手机功能越来越多,系统也是越做越复杂,加上手机上应用种类繁多,软件设计质量参差不齐,因此手机在使用时出现卡顿的情况也逐渐增多,目前主要是通过关闭后台程序或清除缓存等方法来解决卡顿的问题,但现有的解决方法也因为系统资源有限的原因,依然无法很好的解决电子设备中应用出现卡顿的情况。
发明内容
本申请实施例提供了一种应用运行优化控制方法及相关产品,可以在检测到辅任务对主任务发生资源抢占时,将辅任务迁移并绑定到辅CPU上。
第一方面,本申请实施例提供了一种应用运行优化控制方法,应用于电子设备,所述电子设备的系统级芯片包括第一数量个主中央处理器CPU和第二数量个辅CPU,所述方法包括:
在运行目标应用的过程中,获取所述目标应用的主任务所绑定的主CPU在当前检测时间窗口的运行队列和工作频率,所述运行队列包括空闲状态和/或运行任务的时段信息,所述任务包括所述主任务和辅任务,所述主任务包括所述目标应用的核心计算线程,所述辅任务包括所述电子设备运行的线程中除所述核心计算线程之外的一个或多个非核心计算线程;
根据所述运行队列和所述工作频率判断是否满足任务迁移条件,所述任务迁移条件用于约束所述电子设备运行的辅任务在突发性重负载场景中减少对所述主CPU的资源占用;
若根据所述运行队列和所述工作频率判断出满足所述任务迁移条件,则将所述主CPU运行的至少一个辅任务迁移并绑定至辅CPU,所述辅CPU为所述第二数量个辅CPU中的CPU。
第二方面,本申请提供了一种应用运行优化控制装置,应用于电子设备,所述电子设备的系统级芯片包括第一数量个主中央处理器CPU和第二数量个辅CPU,所述装置包括处理单元和通信单元,其中,
所述处理单元,用于在运行目标应用的过程中,获取所述目标应用的主任务所绑定的主CPU在当前检测时间窗口的运行队列和工作频率,所述运行队列包括空闲状态和/或运行任务的时段信息,所述任务包括所述主任务和辅任务,所述主任务包括所述目标应用的核心计算线程,所述辅任务包括所述电子设备运行的线程中除所述核心计算线程之外的一个或多个非核心计算线程;
以及用于根据所述运行队列和所述工作频率判断是否满足任务迁移条件,所述任务迁移条件用于约束所述电子设备运行的辅任务在突发性重负载场景中减少对所述主CPU的资源占用;
以及若根据所述运行队列和所述工作频率判断出满足所述任务迁移条件,则将所述主CPU运行的至少一个辅任务迁移并绑定至辅CPU,所述辅CPU为所述第二数量个辅CPU中的CPU。
第三方面,本申请实施例提供一种电子设备,包括处理器、存储器、通信接口,以及一个或多个程序,所述一个或多个程序被存储在所述存储器中,并且被配置由所述处理器执行,所述程序包括用于执行本申请实施例第一方面中的步骤的指令。
第四方面,本申请实施例提供了一种计算机存储介质,其特征在于,存储用于电子数据交换的计算机程序,其中,所述计算机程序使得计算机执行如本实施例第一方面中所描述的部分或全部步骤。
第五方面,本申请实施例提供了一种计算机程序产品,其中,上述计算机程序产品包括存储了计算机程序的非瞬时性计算机可读存储介质,上述计算机程序可操作来使计算机执行如本申请实施例第一方面中所描述的部分或全部步骤。该计算机程序产品可以为一个软件安装包。
可以看出,本申请实施例中,电子设备的系统级芯片包括第一数量个主中央处理器CPU和第二数量个辅CPU,在运行目标应用的过程中,电子设备首先获取目标应用的主任务所绑定的主CPU在当前检测时间窗口的运行队列和工作频率,运行队列包括空闲状态和/或运行任务的时段信息,任务包括主任务和辅任务,主任务包括目标应用的核心计算线程,辅任务包括电子设备运行的线程中除核心计算线程之外的一个或多个非核心计算线程;其次,根据运行队列和工作频率判断是否满足任务迁移条件,任务迁移条件用于约束电子设备运行的辅任务在突发性重负载场景中减少对主CPU的资源占用;若根据运行队列和工作频率判断出满足任务迁移条件,则将主CPU运行的至少一个辅任务迁移并绑定至辅CPU,辅CPU为第二数量个辅CPU中的CPU。可见,电子设备在运行目标应用的过程中,能够实时检测各项任务的计算资源配置情况,并在辅任务发生突发性重负载情况下,及时调整资源配置以避免目标应用的主任务因被配置的资源急剧减少而发生卡顿,有利于提高电子设备运行目标应用的稳定性和智能性。
附图说明
为了更清楚地说明本申请实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本申请实施例提供的一种电子设备的背面示意图;
图2是本申请实施例提供的一种应用运行优化控制方法的流程示意图;
图2-1是本申请实施例提供的任务迁移过程示意图;
图2-2是本申请实施例提供的运行队列示意图;
图3是本申请实施例提供的另一种应用运行优化控制方法的流程示意图;
图4是本申请实施例提供的一种电子设备的结构示意图;
图5是本申请实施例提供的一种应用运行优化控制装置的功能单元组成框图。
具体实施方式
为了使本技术领域的人员更好地理解本申请方案,下面将结合本申请实施例中的附图,对本申请实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有作出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请的说明书和权利要求书及上述附图中的术语“第一”、“第二”等是用于区别不同对象,而不是用于描述特定顺序。此外,术语“包括”和“具有”以及它们任何变形,意图在于覆盖不排他的包含。例如包含了一系列步骤或单元的过程、方法、系统、产品或设备没有限定于已列出的步骤或单元,而是可选地还包括没有列出的步骤或单元,或可选地还包括对于这些过程、方法、产品或设备固有的其他步骤或单元。
在本文中提及“实施例”意味着,结合实施例描述的特定特征、结构或特性可以包含在本申请的至少一个实施例中。在说明书中的各个位置出现该短语并不一定均是指相同的实施例,也不是与其它实施例互斥的独立的或备选的实施例。本领域技术人员显式地和隐式地理解的是,本文所描述的实施例可以与其它实施例相结合。
本申请实施例所涉及到的电子设备可以是具备通信能力的电子设备,该电子设备可以包括各种具有无线通信功能的手持设备、车载设备、可穿戴设备、计算设备或连接到无线调制解调器的其他处理设备,以及各种形式的用户设备(User Equipment,UE),移动台(Mobile Station,ms),终端设备(terminal device)等等。
目前,由于电子设备的功能逐渐增多,系统也越来越复杂且电子设备上的应用种类繁多,软件设计质量参差不齐,因此电子设备在使用过程中突发性重负载任务也逐步增多,但受到现有系统资源有限的限制,目前对于突发性重负载任务造成的卡顿的优化效果明显不够。
针对上述问题,本申请实施例提供了一种应用运行优化控制方法及相关产品,下面结合附图对本申请实施例进行详细介绍。
如图1所述,电子设备100包括应用运行优化模块,通过应用运行优化模块能够在一定程度上预测卡顿,并通过将辅任务迁移并绑定到辅CPU上来提高系统计算能力,减小和优化卡顿。
请参阅图2,图2是本申请实施例提供的一种应用运行优化控制方法的流程示意图,如图所示,本应用运行优化控制方法应用于电子设备,所述电子设备的系统级芯片包括第一数量个主中央处理器CPU和第二数量个辅CPU,所述方法包括:
S201,在运行目标应用的过程中,获取所述目标应用的主任务所绑定的主CPU在当前检测时间窗口的运行队列和工作频率,所述运行队列包括空闲状态和/或运行任务的时段信息,所述任务包括所述主任务和辅任务,所述主任务包括所述目标应用的核心计算线程,所述辅任务包括所述电子设备运行的线程中除所述核心计算线程之外的一个或多个非核心计算线程。
其中,所述时间窗口可任意设置,一般可以设置为10-20ms(毫秒),对于运行队列和工作频率的检测可以是周期性的,例如检测4个时见周期内的主CPU的运行队列和工作频率。所述时段信息包括各个任务在CPU中的运行时间占比,所述核心计算线程包括主线程、渲染线程以及会阻塞主线程或者渲染线程的GC线程等,所述非核心计算线程包括用户UI线程、网络通信线程或人工智能线程等。
S202,根据所述运行队列和所述工作频率判断是否满足任务迁移条件,所述任务迁移条件用于约束所述电子设备运行的辅任务在突发性重负载场景中减少对所述主CPU的资源占用。
其中,所述突发性重负载场景是指突发性任务抢占系统资源,包括在后台运行的线程太多造成主任务绑定的主CPU负载太重,抢占主任务的系统资源,也可以包括后台运行的某一个或几个线程的负载太重,以至于主线程的系统资源被占用。本实施例是根据主任务所绑定的主CPU的运行队列和工作频率来判断辅任务是否满足迁移条件。
S203,若根据所述运行队列和所述工作频率判断出满足所述任务迁移条件,则将所述主CPU运行的至少一个辅任务迁移并绑定至辅CPU,所述辅CPU为所述第二数量个辅CPU中的CPU。
其中,当主CPU中的运行队列和工作频率满足条件后,对主CPU中的辅任务进行迁移,迁移出去的辅任务的数量视情况而定,将辅任务迁移并绑定至一个或分别迁移并绑定至多个辅CPU中,以使得主CPU中的负载可以变轻。
举一个例子,请参阅图2-1,图2-1是本申请实施例提供的任务迁移过程示意图,电子设备以手机为例,当前市场上主流机型采用的主流的中高端芯片很大一部分都采用“2+6”的架构,即2个大核加6个小核,图2-1仅展示了一个绑定了主任务的大核即主CPU,和一个小核即多个辅CPU中的一个,如图所示,图中共展示了4个观察周期,每一个观察周期是15ms,大核中正在运行的任务有三个,分别是1号任务、2号任务和3号任务,其中2号任务是主任务,其他任务为辅任务,通过对着几个观察周期内的大核的运行队列和工作频率的判断,发现满足任务迁移条件,则先将1号任务迁移并绑定至小核中,后又将3号任务迁移并绑定至小核中,以使得大核中2号任务的系统资源不会再被1号任务和3号任务抢占,避免造成手机的卡顿。
可以看出,本申请实施例中,电子设备可以通过检测主任务绑定的主CPU的运行队列和工作频率,在一定程度上提前预测是否会造成卡顿,若满足迁移条件,则将主CPU中运行的辅任务迁移并绑定至一个辅CPU,以使得主任务的系统资源不会被辅任务抢占,且能提高系统计算能力,减少因突发性重负载持续抢占大核计算资源导致卡顿,这种方法能够减少和优化在突发性重负载场景下的卡顿,有利于提高电子设备运行目标应用的稳定性和智能性。
在一个可能的实例中,所述根据所述运行队列和所述工作频率判断出满足所述任务迁移条件,包括:根据所述运行队列确定所述主CPU的运行时间占比;检测到所述主CPU的运行时间占比大于或等于第一预设占比;检测到所述工作频率大于或等于预设工作频率;根据所述运行队列确定所述主任务的运行时间占比;检测到所述主任务的运行时间占比小于第二预设占比,确定满足所述任务迁移条件。
其中,所述主CPU的运行时间占比包括主CPU在一个和/或几个观察周期中,主CPU的运行时间在观察周期时间内的占比,所述第一预设占比可以是一个范围,例如75%~100%,检测到所述主CPU运行时间占比大于第一预设占比,可以看出主CPU几乎一直处于运行状态;主CPU的预设工作频率则可以设置在2.8GHZ~3.5GHZ之间。所述第二预设占比也可以是一个范围,例如70%~85%,这样当主任务的运行时间占比小于第二预设占比时,则意味着主任务的系统资源可能被辅任务抢占,所以满足任务迁移条件。
可见,本示例中,通过比较主CPU的运行时间占比和第一预设占比,以确定所述主CPU的运行时间,通过比较主任务在主CPU中的运行时间占比和第二预设占比,以确定辅任务是否存在抢占主任务的系统资源的情况,当检测出的结果是CPU几乎一直在运行且工作频率足够高时,又检测到辅任务存在抢占主任务系统资源的情况时,就可以确定满足任务迁移条件。通过这种方法,可以在一定程度上预测是否会造成卡顿,减少突发性重负载任务持续抢占主CPU资源导致卡顿的情况。
在一个可能的实例中,所述方法包括:若所述主CPU的运行时间占比小于所述第一预设占比,则确定不满足任务迁移条件;获取迁移队列中每个被迁移的辅任务的负载;检测是否存在所述负载小于预设负载的被迁移的辅任务;若是,则解除检测到的辅任务与所绑定的辅CPU之间的绑定关系。
其中,当检测到的主CPU的运行时间占比小于第一预设占比时,就表示主CPU的运行时间时不够的,还没有达到目标限值,例如主CPU的运行时间占比仅有50%,则可以认定不满足迁移条件。所述迁移队列包括在满足迁移条件时,从主CPU迁移去辅CPU的辅任务,所述预设负载可以设定为10%~25%之间,例如预设负载为10%,则当检测到迁移队列中有负载小于10%的辅任务,则可以将之解绑,以使得可以重新在主CPU中运行所述辅任务。
可见,本示例中,在主CPU的运行时间占比达不到第一预设占比时,可以将迁移并绑定去辅CPU的负载小于预设负载的辅任务解绑,这样可以使得既不浪费系统资源,又能尽量减少对系统调度的干扰,保障应用的性能需求。
在一个可能的实例中,所述方法包括:检测到所述工作频率小于所述预设工作频率;确定不满足任务迁移条件,并提高所述主CPU的工作频率。
其中,当主CPU的工作频率小于预设工作频率时,例如主CPU的工作频率仅有2.5GHZ,则可以确定不满足迁移条件,因为在这种情况下,即使出现突发性重负载任务也可以通过提高主CPU的工作频率来保障主任务的顺利运行,不会因此出现卡顿的情况,所以是不满足迁移条件的。
可见,本示例中,在检测到主CPU的工作频率小于预设工作频率时,提高主CPU的工作频率可以提前预防突发性重负载任务的出现造成卡顿的情况。
在一个可能的实例中,所述方法包括:检测到所述主任务的运行时间占比大于或等于所述第二预设占比;保持当前的任务资源分配机制不变。
其中,若所述主任务在主CPU中的运行时间占比能不小于第二预设占比,例如主任务的运行时间占比为75%,则可以任务所述主任务的系统资源没有被抢占,主任务能够顺畅的在主CPU中运行,因此保持当前的任务分配机制不变,包括辅任务也不必迁移至辅CPU中。
可见,在判断出主任务的运行时间占比足够时,就不对任务资源分配机制做改变,可以使得各个线程流畅运行且尽量避免对系统调度进行干扰。
在一个可能的实例中,所述将所述主CPU运行的至少一个辅任务迁移并绑定至辅CPU,包括:根据所述运行队列分别确定所述辅任务的运行时间占比;比较所述辅任务的运行时间占比;将所述主CPU运行的运行时间占比最大的辅任务迁移并绑定至辅CPU。
其中,当确定满足任务迁移条件时,就需要从在主CPU中运行的辅任务中选择一个或几个辅任务迁移并绑定至指定的辅CPU,当需要迁移的辅任务有多个时,需要再次确定各个辅任务在主CPU中的运行时间占比,运行时间占比大的则可以看做是负载重,所以在对辅任务进行迁移时,优先从运行时间占比大的辅任务开始迁移,直到需要迁移的辅任务全部迁移完成或主任务的系统资源足够时。
可见,在对辅任务进行迁移时,是按照辅任务的负载来确定迁移顺序的,这样可以使得迁移尽可能少的辅任务就使得主任务的系统资源足够,既可以减少对系统调度的干扰,又能满足应用的性能需求。
在一个可能的实例中,所述根据所述运行队列和所述工作频率判断出满足所述任务迁移条件,包括:获取所述主CPU的所述当前检测时间窗口之前的历史检测时间窗口的运行队列,所述历史检测时间窗口的数量包括一个或多个;通过分析所述历史检测时间窗口的所述运行队列和所述当前检测时间窗口的运行队列,得到所述主任务的平均运行时间变化情况;检测到所述平均运行时间变化情况为平均运行时间减少,且减少量大于预设减少量,确定满足所述任务迁移条件。
其中,在对是否满足任务迁移条件进行判断时,还可以通过比较不同时期内的检测时间窗口的主任务的平均运行时间,若发现当前时间窗口内的主任务的平均运行时间相比于上一个时间窗口的主任务的平均运行时间减少了,且减少量大于预设减少量,则可以确定满足任务迁移条件。
举一个例子,请参阅图2-2,图2-2是本申请实施例提供的运行队列示意图,电子设备以手机为例,如图所示,图中表示的是大核也就是主CPU中的运行队列,一共有三个检测时间窗口,第一个时间窗口和第二个时间窗口内有1号任务和2号任务,其中2号任务是主任务,第三个时间窗口中有2号任务和3号任务,每个时间窗口分别是15ms,可以看出,第二个时间窗口内的主任务平均运行时间相比于第一个时间窗口内的平均运行时间减少了10%左右,第三个时间窗口内的主任务的平均运行时间相比于第二时间窗口减少了10%,比第一时间窗口减少了20%左右,当设定的预设减少量为15%,则当处于第二个时间窗口时,不满足任务迁移条件,当处于第三个时间窗口时则满足任务迁移条件。
可见,本示例中,通过动态监测机制,分析当前检测时间窗口和历史时间检测窗口中主任务的平均运行时间,来确定是否满足任务迁移条件,横向对比,可以使得对突发性重负载任务的出现判断更加全面,能够预测卡顿,根据情况提前做出响应,减少卡顿的出现。
在一个可能的实例中,所述将所述主CPU运行的至少一个辅任务迁移并绑定至辅CPU,包括:根据所述减少量确定需要迁移的辅任务的数量;根据所述运行队列中所述辅任务的运行时间占比确定将所述辅任务迁移并绑定至辅CPU的顺序。
其中,当满足任务迁移条件时,将辅任务迁移至辅CPU的数量由当前检测时间窗口的主任务相比于历史检测时间窗口的主任务的平均运行时间的减少数量来确定,例如,当平均运行时间减少了20%,则迁移一个辅任务到辅CPU中,若减少了30%,则迁移两个辅任务到辅CPU中,以此类推。且当需要或是能够迁移的辅任务的数量为多个时,对于辅任务的迁移顺序可以按照各个辅任务在主CPU中的运行时间占比的大小来确定,优先迁移占比大的辅任务。
可见,本示例中,满足任务迁移条件时,辅任务的迁移数量是按照平均运行时间来确定的,迁移顺序是根据辅任务的运行时间占比来确定的,这样可以有序的对辅任务进行迁移,使得整个迁移过程快速高效,减小对系统调度的干扰。
与上述图2实施例一致的,请参阅图3,图3是本申请实施例提供的另一种应用运行优化控制方法的流程示意图,如图所示,本申请一种应用运行优化控制方法,应用于电子设备,所述电子设备的系统级芯片包括第一数量个主中央处理器CPU和第二数量个辅CPU,所述方法包括:
S301,在运行目标应用的过程中,获取所述目标应用的主任务所绑定的主CPU在当前检测时间窗口的运行队列和工作频率,所述运行队列包括空闲状态和/或运行任务的时段信息,所述任务包括所述主任务和辅任务,所述主任务包括所述目标应用的核心计算线程,所述辅任务包括所述电子设备运行的线程中除所述核心计算线程之外的一个或多个非核心计算线程;
S302,根据所述运行队列确定所述主CPU的运行时间占比;
S303,检测到所述主CPU的运行时间占比大于或等于第一预设占比;
S304,检测到所述工作频率大于或等于预设工作频率;
S305,根据所述运行队列确定所述主任务的运行时间占比;
S306,检测到所述主任务的运行时间占比小于第二预设占比,确定满足所述任务迁移条件;
S307,若根据所述运行队列和所述工作频率判断出满足所述任务迁移条件,则将所述主CPU运行的至少一个辅任务迁移并绑定至辅CPU,所述辅CPU为所述第二数量个辅CPU中的CPU。
可以看出,本实施例中,获取了主任务绑定的主CPU在检测时间窗口的运行时间占比和主CPU的工作频率,获取了主任务在主CPU中的运行时间占比,当主CPU的运行时间占比大于第一预设占比,主CPU的工作频率大于预设工作频率和主任务的运行时间占比大于第二预设占比时,确定满足任务迁移条件,并将在主CPU中运行的辅任务迁移并绑定至辅CPU上,这样可以使得在一定程度上预测卡顿,减少因突发性重负载持续抢占大核计算资源导致出现卡顿的情况,通过迁移辅任务至辅CPU中可以提高系统计算能力,减少和优化卡顿。
与上图2、图3所示的实施例一致的,请参阅图4,图4是本申请实施例提供的一种电子设备的结构示意图,如图所示,所述电子设备400包括应用处理器410、存储器420、通信接口430以及一个或多个程序421,其中,所述一个或多个程序421被存储在上述存储器420中,且被配置由上述应用处理器410执行,所述一个或多个程序421包括用于执行上述方法实施例中任一步骤的指令。
在一个可能的实例中,所述程序421中的指令用于执行以下操作:在运行目标应用的过程中,获取所述目标应用的主任务所绑定的主CPU在当前检测时间窗口的运行队列和工作频率,所述运行队列包括空闲状态和/或运行任务的时段信息,所述任务包括所述主任务和辅任务,所述主任务包括所述目标应用的核心计算线程,所述辅任务包括所述电子设备运行的线程中除所述核心计算线程之外的一个或多个非核心计算线程;
根据所述运行队列和所述工作频率判断是否满足任务迁移条件,所述任务迁移条件用于约束所述电子设备运行的辅任务在突发性重负载场景中减少对所述主CPU的资源占用;若根据所述运行队列和所述工作频率判断出满足所述任务迁移条件,则将所述主CPU运行的至少一个辅任务迁移并绑定至辅CPU,所述辅CPU为所述第二数量个辅CPU中的CPU。
可以看出,本申请实施例所描述的电子设备能够根据运行队列和工作频率确定是否满足迁移条件,并在满足迁移条件时将辅任务迁移并绑定至辅CPU中,不仅能够在一定程度上预测卡顿,减少因突发性重负载持续抢占大核计算资源导致出现卡顿的情况,而且通过迁移辅任务至辅CPU中可以提高系统计算能力,减少和优化卡顿。
在一个可能的示例中,在所述根据所述运行队列和所述工作频率判断出满足所述任务迁移条件方面,所述程序指令421还包括用于执行以下操作的指令:根据所述运行队列确定所述主CPU的运行时间占比;检测到所述主CPU的运行时间占比大于或等于第一预设占比;检测到所述工作频率大于或等于预设工作频率;根据所述运行队列确定所述主任务的运行时间占比;检测到所述主任务的运行时间占比小于第二预设占比,确定满足所述任务迁移条件。
在一个可能的示例中,所述程序指令421还包括用于执行以下操作的指令:若所述主CPU的运行时间占比小于所述第一预设占比,则确定不满足任务迁移条件;获取迁移队列中每个被迁移的辅任务的负载;检测是否存在所述负载小于预设负载的被迁移的辅任务;若是,则解除检测到的辅任务与所绑定的辅CPU之间的绑定关系。
在一个可能的示例中,所述程序指令421还包括用于执行以下操作的指令:检测到所述工作频率小于所述预设工作频率;确定不满足任务迁移条件,并提高所述主CPU的工作频率。
在一个可能的示例中,所述程序指令421还包括用于执行以下操作的指令:检测到所述主任务的运行时间占比大于或等于所述第二预设占比;保持当前的任务资源分配机制不变。
在一个可能的示例中,在所述将所述主CPU运行的至少一个辅任务迁移并绑定至辅CPU方面,所述程序指令421还包括用于执行以下操作的指令:根据所述运行队列分别确定所述辅任务的运行时间占比;比较所述辅任务的运行时间占比;将所述主CPU运行的运行时间占比最大的辅任务迁移并绑定至辅CPU。
在一个可能的示例中,在所述根据所述运行队列和所述工作频率判断出满足所述任务迁移条件方面,所述程序指令421还包括用于执行以下操作的指令:获取所述主CPU的所述当前检测时间窗口之前的历史检测时间窗口的运行队列,所述历史检测时间窗口的数量包括一个或多个;通过分析所述历史检测时间窗口的所述运行队列和所述当前检测时间窗口的运行队列,得到所述主任务的平均运行时间变化情况;检测到所述平均运行时间变化情况为平均运行时间减少,且减少量大于预设减少量,确定满足所述任务迁移条件。
在一个可能的示例中,在所述将所述主CPU运行的至少一个辅任务迁移并绑定至辅CPU方面,所述程序指令421还包括用于执行以下操作的指令:根据所述减少量确定需要迁移的辅任务的数量;根据所述运行队列中所述辅任务的运行时间占比确定将所述辅任务迁移并绑定至辅CPU的顺序。
上述主要从方法侧执行过程的角度对本申请实施例的方案进行了介绍。可以理解的是,电子设备为了实现上述功能,其包含了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本文中所提供的实施例描述各个步骤,本申请能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请的范围。
本申请实施例可以根据上述方法示例对电子设备进行功能单元的划分,例如,可以对应各个功能划分各个功能单元,也可以将两个或两个以上的功能集成在一个处理单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。需要说明的是,本申请实施例中对单元的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
图5是本申请实施例提供的一种应用运行优化控制装置的功能单元组成框图。该用运行优化控制装置应用于电子设备,所述电子设备的系统级芯片包括第一数量个主中央处理器CPU和第二数量个辅CPU,所述装置包括处理单元和通信单元,其中,
所述处理单元,用于在运行目标应用的过程中,获取所述目标应用的主任务所绑定的主CPU在当前检测时间窗口的运行队列和工作频率,所述运行队列包括空闲状态和/或运行任务的时段信息,所述任务包括所述主任务和辅任务,所述主任务包括所述目标应用的核心计算线程,所述辅任务包括所述电子设备运行的线程中除所述核心计算线程之外的一个或多个非核心计算线程;
以及用于根据所述运行队列和所述工作频率判断是否满足任务迁移条件,所述任务迁移条件用于约束所述电子设备运行的辅任务在突发性重负载场景中减少对所述主CPU的资源占用;以及若根据所述运行队列和所述工作频率判断出满足所述任务迁移条件,则将所述主CPU运行的至少一个辅任务迁移并绑定至辅CPU,所述辅CPU为所述第二数量个辅CPU中的CPU。
其中,所述应用运行优化控制装置500还可以包括存储单元503,用于存储电子设备的程序代码和数据。所述处理单元501可以是处理器,所述通信单元502可以收发器,存储单元503可以是存储器。
在一个可能的实施例中,在所述根据所述运行队列和所述工作频率判断出满足所述任务迁移条件方面,所述处理单元501还可用于根据所述运行队列确定所述主CPU的运行时间占比;检测到所述主CPU的运行时间占比大于或等于第一预设占比;检测到所述工作频率大于或等于预设工作频率;根据所述运行队列确定所述主任务的运行时间占比;检测到所述主任务的运行时间占比小于第二预设占比,确定满足所述任务迁移条件。
在一个可能的实施例中,所述处理单元501还可用于若所述主CPU的运行时间占比小于所述第一预设占比,则确定不满足任务迁移条件;获取迁移队列中每个被迁移的辅任务的负载;检测是否存在所述负载小于预设负载的被迁移的辅任务;若是,则解除检测到的辅任务与所绑定的辅CPU之间的绑定关系。
在一个可能的实施例中,所述处理单元501还可用于检测到所述工作频率小于所述预设工作频率;确定不满足任务迁移条件,并提高所述主CPU的工作频率。
在一个可能的实施例中,所述处理单元501还可用于检测到所述主任务的运行时间占比大于或等于所述第二预设占比;保持当前的任务资源分配机制不变。
在一个可能的实施例中,在所述将所述主CPU运行的至少一个辅任务迁移并绑定至辅CPU方面,所述处理单元501还可用于根据所述运行队列分别确定所述辅任务的运行时间占比;比较所述辅任务的运行时间占比;将所述主CPU运行的运行时间占比最大的辅任务迁移并绑定至辅CPU。
在一个可能的实施例中,在所述根据所述运行队列和所述工作频率判断出满足所述任务迁移条件方面,所述处理单元501还可用于获取所述主CPU的所述当前检测时间窗口之前的历史检测时间窗口的运行队列,所述历史检测时间窗口的数量包括一个或多个;通过分析所述历史检测时间窗口的所述运行队列和所述当前检测时间窗口的运行队列,得到所述主任务的平均运行时间变化情况;检测到所述平均运行时间变化情况为平均运行时间减少,且减少量大于预设减少量,确定满足所述任务迁移条件。
在一个可能的实施例中,在所述将所述主CPU运行的至少一个辅任务迁移并绑定至辅CPU方面,所述处理单元501还可用于根据所述减少量确定需要迁移的辅任务的数量;根据所述运行队列中所述辅任务的运行时间占比确定将所述辅任务迁移并绑定至辅CPU的顺序。
可以理解的是,由于方法实施例与装置实施例为相同技术构思的不同呈现形式,因此,本申请中方法实施例部分的内容应同步适配于装置实施例部分,此处不再赘述。
本申请实施例还提供一种计算机存储介质,其中,该计算机存储介质存储用于电子数据交换的计算机程序,该计算机程序使得计算机执行如上述方法实施例中记载的任一方法的部分或全部步骤,上述计算机包括电子设备。
本申请实施例还提供一种计算机程序产品,上述计算机程序产品包括存储了计算机程序的非瞬时性计算机可读存储介质,上述计算机程序可操作来使计算机执行如上述方法实施例中记载的任一方法的部分或全部步骤。该计算机程序产品可以为一个软件安装包,上述计算机包括电子设备。
需要说明的是,对于前述的各方法实施例,为了简单描述,故将其都表述为一系列的动作组合,但是本领域技术人员应该知悉,本申请并不受所描述的动作顺序的限制,因为依据本申请,某些步骤可以采用其他顺序或者同时进行。其次,本领域技术人员也应该知悉,说明书中所描述的实施例均属于优选实施例,所涉及的动作和模块并不一定是本申请所必须的。
在上述实施例中,对各个实施例的描述都各有侧重,某个实施例中没有详述的部分,可以参见其他实施例的相关描述。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置,可通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如上述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个系统,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性或其它的形式。
上述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
上述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储器中。基于这样的理解,本申请的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储器中,包括若干指令用以使得一台计算机设备(可为个人计算机、服务器或者网络设备等)执行本申请各个实施例上述方法的全部或部分步骤。而前述的存储器包括:U盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random Access Memory)、移动硬盘、磁碟或者光盘等各种可以存储程序代码的介质。
本领域普通技术人员可以理解上述实施例的各种方法中的全部或部分步骤是可以通过程序来指令相关的硬件来完成,该程序可以存储于一计算机可读存储器中,存储器可以包括:闪存盘、只读存储器(英文:Read-Only Memory,简称:ROM)、随机存取器(英文:Random Access Memory,简称:RAM)、磁盘或光盘等。
以上对本申请实施例进行了详细介绍,本文中应用了具体个例对本申请的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本申请的方法及其核心思想;同时,对于本领域的一般技术人员,依据本申请的思想,在具体实施方式及应用范围上均会有改变之处,综上所述,本说明书内容不应理解为对本申请的限制。
Claims (11)
1.一种应用运行优化控制方法,其特征在于,应用于电子设备,所述电子设备的系统级芯片包括第一数量个主中央处理器CPU和第二数量个辅CPU,所述方法包括:
在运行目标应用的过程中,获取所述目标应用的主任务所绑定的主CPU在当前检测时间窗口的运行队列和工作频率,所述运行队列包括空闲状态和/或运行任务的时段信息,所述任务包括所述主任务和辅任务,所述主任务包括所述目标应用的核心计算线程,所述辅任务包括所述电子设备运行的线程中除所述核心计算线程之外的一个或多个非核心计算线程;
根据所述运行队列和所述工作频率判断是否满足任务迁移条件,所述任务迁移条件用于约束所述电子设备运行的辅任务在突发性重负载场景中减少对所述主CPU的资源占用;
若根据所述运行队列和所述工作频率判断出满足所述任务迁移条件,则将所述主CPU运行的至少一个辅任务迁移并绑定至辅CPU,所述辅CPU为所述第二数量个辅CPU中的CPU。
2.根据权利要求1所述的方法,其特征在于,所述根据所述运行队列和所述工作频率判断出满足所述任务迁移条件,包括:
根据所述运行队列确定所述主CPU的运行时间占比;
检测到所述主CPU的运行时间占比大于或等于第一预设占比;
检测到所述工作频率大于或等于预设工作频率;
根据所述运行队列确定所述主任务的运行时间占比;
检测到所述主任务的运行时间占比小于第二预设占比,确定满足所述任务迁移条件。
3.根据权利要求2所述的方法,其特征在于,所述方法还包括:
若所述主CPU的运行时间占比小于所述第一预设占比,则确定不满足任务迁移条件;
获取迁移队列中每个被迁移的辅任务的负载;
检测是否存在所述负载小于预设负载的被迁移的辅任务;
若是,则解除检测到的辅任务与所绑定的辅CPU之间的绑定关系。
4.根据权利要求2或3所述的方法,其特征在于,所述方法还包括:
检测到所述工作频率小于所述预设工作频率;
确定不满足任务迁移条件,并提高所述主CPU的工作频率。
5.根据权利要求2-4任一项所述的方法,其特征在于,所述方法还包括:
检测到所述主任务的运行时间占比大于或等于所述第二预设占比;
保持当前的任务资源分配机制不变。
6.根据权利要求2-5任一项所述的方法,其特征在于,所述将所述主CPU运行的至少一个辅任务迁移并绑定至辅CPU,包括:
根据所述运行队列分别确定所述辅任务的运行时间占比;
比较所述辅任务的运行时间占比;
将所述主CPU运行的运行时间占比最大的辅任务迁移并绑定至辅CPU。
7.根据权利要求1所述的方法,其特征在于,所述根据所述运行队列和所述工作频率判断出满足所述任务迁移条件,包括:
获取所述主CPU的所述当前检测时间窗口之前的历史检测时间窗口的运行队列,所述历史检测时间窗口的数量包括一个或多个;
通过分析所述历史检测时间窗口的所述运行队列和所述当前检测时间窗口的运行队列,得到所述主任务的平均运行时间变化情况;
检测到所述平均运行时间变化情况为平均运行时间减少,且减少量大于预设减少量,确定满足所述任务迁移条件。
8.根据权利要求7所述的方法,其特征在于,所述将所述主CPU运行的至少一个辅任务迁移并绑定至辅CPU,包括:
根据所述减少量确定需要迁移的辅任务的数量;
根据所述运行队列中所述辅任务的运行时间占比确定将所述辅任务迁移并绑定至辅CPU的顺序。
9.一种应用运行优化控制装置,其特征在于,应用于电子设备,所述电子设备的系统级芯片包括第一数量个主中央处理器CPU和第二数量个辅CPU,所述装置包括处理单元和通信单元,其中,
所述处理单元,用于在运行目标应用的过程中,获取所述目标应用的主任务所绑定的主CPU在当前检测时间窗口的运行队列和工作频率,所述运行队列包括空闲状态和/或运行任务的时段信息,所述任务包括所述主任务和辅任务,所述主任务包括所述目标应用的核心计算线程,所述辅任务包括所述电子设备运行的线程中除所述核心计算线程之外的一个或多个非核心计算线程;
以及用于根据所述运行队列和所述工作频率判断是否满足任务迁移条件,所述任务迁移条件用于约束所述电子设备运行的辅任务在突发性重负载场景中减少对所述主CPU的资源占用;
以及若根据所述运行队列和所述工作频率判断出满足所述任务迁移条件,则将所述主CPU运行的至少一个辅任务迁移并绑定至辅CPU,所述辅CPU为所述第二数量个辅CPU中的CPU。
10.一种电子设备,其特征在于,包括处理器、存储器、通信接口,以及一个或多个程序,所述一个或多个程序被存储在所述存储器中,并且被配置由所述处理器执行,所述程序包括用于执行如权利要求1-8任一项所述的方法中的步骤的指令。
11.一种计算机存储介质,其特征在于,存储用于电子数据交换的计算机程序,其中,所述计算机程序使得计算机执行如权利要求1-8任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911063553.0A CN110825524B (zh) | 2019-10-31 | 2019-10-31 | 应用运行优化控制方法及相关产品 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201911063553.0A CN110825524B (zh) | 2019-10-31 | 2019-10-31 | 应用运行优化控制方法及相关产品 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN110825524A true CN110825524A (zh) | 2020-02-21 |
CN110825524B CN110825524B (zh) | 2022-04-15 |
Family
ID=69552403
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201911063553.0A Active CN110825524B (zh) | 2019-10-31 | 2019-10-31 | 应用运行优化控制方法及相关产品 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN110825524B (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112559176A (zh) * | 2020-12-11 | 2021-03-26 | 广州橙行智动汽车科技有限公司 | 一种指令处理方法和装置 |
CN113842642A (zh) * | 2021-09-29 | 2021-12-28 | 联想(北京)有限公司 | 一种为游戏应用分配资源的方法及电子设备 |
WO2023116415A1 (zh) * | 2021-12-22 | 2023-06-29 | 华为技术有限公司 | 一种应用程序的抑制方法和电子设备 |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104050443A (zh) * | 2013-03-13 | 2014-09-17 | 英特尔公司 | 使用肤色检测的视频流的姿势预处理 |
CN109064538A (zh) * | 2018-08-01 | 2018-12-21 | Oppo广东移动通信有限公司 | 视图渲染方法、装置、存储介质及智能终端 |
-
2019
- 2019-10-31 CN CN201911063553.0A patent/CN110825524B/zh active Active
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN104050443A (zh) * | 2013-03-13 | 2014-09-17 | 英特尔公司 | 使用肤色检测的视频流的姿势预处理 |
CN109064538A (zh) * | 2018-08-01 | 2018-12-21 | Oppo广东移动通信有限公司 | 视图渲染方法、装置、存储介质及智能终端 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112559176A (zh) * | 2020-12-11 | 2021-03-26 | 广州橙行智动汽车科技有限公司 | 一种指令处理方法和装置 |
CN113842642A (zh) * | 2021-09-29 | 2021-12-28 | 联想(北京)有限公司 | 一种为游戏应用分配资源的方法及电子设备 |
CN113842642B (zh) * | 2021-09-29 | 2024-05-28 | 联想(北京)有限公司 | 一种为游戏应用分配资源的方法及电子设备 |
WO2023116415A1 (zh) * | 2021-12-22 | 2023-06-29 | 华为技术有限公司 | 一种应用程序的抑制方法和电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN110825524B (zh) | 2022-04-15 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN110825524B (zh) | 应用运行优化控制方法及相关产品 | |
US9727372B2 (en) | Scheduling computer jobs for execution | |
CN108009006B (zh) | I/o请求的调度方法及装置 | |
US10541939B2 (en) | Systems and methods for provision of a guaranteed batch | |
CN109992403B (zh) | 多租户资源调度的优化方法、装置、终端设备及存储介质 | |
CN106557369B (zh) | 一种多线程的管理方法及系统 | |
US11966792B2 (en) | Resource processing method of cloud platform, related device, and storage medium | |
CN111708642B (zh) | Vr系统中处理器性能优化方法、装置及vr设备 | |
US20150100964A1 (en) | Apparatus and method for managing migration of tasks between cores based on scheduling policy | |
CN112868265A (zh) | 网络资源的管理方法、管理装置、电子设备及存储介质 | |
CN113660173A (zh) | 一种流量控制方法、装置、计算机设备及存储介质 | |
CN103870331A (zh) | 一种动态分配处理器内核的方法及电子设备 | |
US9213575B2 (en) | Methods and systems for energy management in a virtualized data center | |
CN117369990A (zh) | 一种算力资源调度方法及装置、系统、设备、存储介质 | |
CN112559176A (zh) | 一种指令处理方法和装置 | |
KR20130051076A (ko) | 응용프로그램 스케줄링 방법 및 장치 | |
CN109656716B (zh) | 一种Slurm作业调度方法及系统 | |
CN116661964A (zh) | 任务处理方法、装置及电子设备 | |
CN116450290A (zh) | 计算机资源的管理方法、装置、云服务器及存储介质 | |
EP2413240A1 (en) | Computer micro-jobs | |
CN110795383A (zh) | SoC频率控制方法、装置、终端及存储介质 | |
CN114579309A (zh) | 一种数据处理方法和装置 | |
CN113971082A (zh) | 任务调度方法、装置、设备、介质及产品 | |
CN109144745B (zh) | 进程间通信的监控方法、电子装置以及可读存储介质 | |
CN112506672B (zh) | 面向虚拟gpu的云手机在线调度与迁移的方法及装置 |
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 |