CN105975050A - 终端功耗控制方法及装置 - Google Patents
终端功耗控制方法及装置 Download PDFInfo
- Publication number
- CN105975050A CN105975050A CN201610349797.5A CN201610349797A CN105975050A CN 105975050 A CN105975050 A CN 105975050A CN 201610349797 A CN201610349797 A CN 201610349797A CN 105975050 A CN105975050 A CN 105975050A
- Authority
- CN
- China
- Prior art keywords
- frequency
- cpu
- target
- run
- intended application
- 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.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/26—Power supply means, e.g. regulation thereof
- G06F1/32—Means for saving power
- G06F1/3203—Power management, i.e. event-based initiation of a power-saving mode
- G06F1/3234—Power saving characterised by the action undertaken
- G06F1/3243—Power saving in microcontroller unit
Abstract
本发明公开了一种终端功耗控制方法及装置,属于计算机技术领域。所述方法包括:在目标应用启动时,获取目标应用的目标标识,目标应用为第三方应用中的任一种应用;查询预设的第一对应关系中是否存在目标标识,第一对应关系用于记录标识和CPU的频率的对应关系;当第一对应关系中不存在目标标识时,根据目标应用的目标标识设置CPU的目标频率;生成指示消息,指示消息包括CPU的目标频率;向CPU发送指示消息,指示消息用于指示CPU在目标应用运行过程中,根据指示消息控制CPU的频率符合目标频率。本发明解决了终端功耗控制的步骤较复杂,且实用性较差的问题,简化了功耗控制的步骤,且提高了实用性,用于控制终端功耗。
Description
技术领域
本发明涉及计算机技术领域,特别涉及一种终端功耗控制方法及装置。
背景技术
随着计算机、手持终端的普及,越来越多的用户会选择智能手机、智能平板电脑、个人计算机等终端中的应用来上网、娱乐或工作。随着终端设备技术的飞速发展,如多核处理器的应用,终端的硬件性能越来越好,但是终端的功耗也随之增大,导致终端的电池续航时间变短。
现有技术中有一种终端功耗控制方法,该方法通过手动测试对终端的系统应用和部分常用的第三方应用进行优化,在保证终端的硬件性能的前提下降低终端的功耗。
由于上述过程是手动测试,所以优化过程较复杂,同时,针对的是部分常用的第三方应用,因此,功耗控制的步骤较复杂,且实用性较差。
发明内容
为了解决现有技术中功耗控制的效果较差的问题,本发明提供了一种终端功耗控制方法及装置。所述技术方案如下:
第一方面,提供了一种终端功耗控制方法,所述方法包括:
在目标应用启动时,获取所述目标应用的目标标识,所述目标应用为第三方应用中的任一种应用;
查询预设的第一对应关系中是否存在所述目标标识,所述第一对应关系用于记录标识和中央处理器(英文:Central Processing Unit;简称:CPU)的频率的对应关系;
当所述第一对应关系中不存在所述目标标识时,根据所述目标应用的目标标识设置所述CPU的目标频率;
生成指示消息,所述指示消息包括所述CPU的目标频率;
向所述CPU发送所述指示消息,所述指示消息用于指示所述CPU在所述目标应用运行过程中,根据所述指示消息控制所述CPU的频率符合所述目标频率。
可选的,所述根据所述目标应用的目标标识设置所述CPU的目标频率,包括:
获取所述目标标识指示的所述目标应用启动时的第一时刻;
获取所述目标标识指示的所述目标应用停止运行时的第二时刻;
判断所述第二时刻与所述第一时刻的差值是否大于预设时段;
当所述第二时刻与所述第一时刻的差值大于所述预设时段时,根据所述目标应用启动时所述CPU在n个频点中每个频点指示的频率下的起始运行次数,及所述目标应用停止运行时所述CPU在所述每个频点指示的频率下的结束运行次数,确定所述CPU的目标频率,所述n大于或等于1。
可选的,所述根据所述目标应用启动时所述CPU在n个频点中每个频点指示的频率下的起始运行次数,及所述目标应用停止运行时所述CPU在所述每个频点指示的频率下的结束运行次数,确定所述CPU的目标频率,包括:
获取所述n个频点对应的n个运行次数差值,所述每个频点对应的运行次数差值为所述CPU在所述每个频点指示的频率下的结束运行次数与所述CPU在对应频点指示的频率下的起始运行次数的差值;
获取所述n个运行次数差值中的最大值;
判断所述最大值占所述n个运行次数差值的比重是否大于预设值;
当所述最大值占所述n个运行次数差值的比重大于所述预设值时,将所述最大值对应的频率作为所述目标频率;
当所述最大值占所述n个运行次数差值的比重不大于所述预设值时,获取所述n个运行次数差值中的次大值;
将所述最大值对应的频率和所述次大值对应的频率中的较大频率作为所述CPU的最大频率,并将所述最大值对应的频率和所述次大值对应的频率中的较小频率作为所述CPU的最小频率;
将所述最大频率和所述最小频率构成的频率范围中的频率作为所述目标频率。
可选的,在所述确定所述CPU的目标频率之前,所述方法还包括:
获取所述CPU在所述n个频点中所述每个频点指示的频率下的起始运行次数;
在所述目标应用停止运行时,获取所述CPU在所述每个频点指示的频率下的结束运行次数。
可选的,在所述根据所述目标应用的目标标识设置所述CPU的目标频率之后,所述方法还包括:
将所述目标标识和设置的所述目标频率添加至所述第一对应关系中。
第二方面,提供了一种终端功耗控制装置,所述装置包括:
第一获取模块,用于在目标应用启动时,获取所述目标应用的目标标识,所述目标应用为第三方应用中的任一种应用;
查询模块,用于查询预设的第一对应关系中是否存在所述目标标识,所述第一对应关系用于记录标识和中央处理器CPU的频率的对应关系;
设置模块,用于在所述第一对应关系中不存在所述目标标识时,根据所述目标应用的目标标识设置所述CPU的目标频率;
生成模块,用于生成指示消息,所述指示消息包括所述CPU的目标频率;
发送模块,用于向所述CPU发送所述指示消息,所述指示消息用于指示所述CPU在所述目标应用运行过程中,根据所述指示消息控制所述CPU的频率符合所述目标频率。
可选的,所述设置模块,包括:
第一获取子模块,用于获取所述目标标识指示的所述目标应用启动时的第一时刻;
第二获取子模块,用于获取所述目标标识指示的所述目标应用停止运行时的第二时刻;
判断子模块,用于判断所述第二时刻与所述第一时刻的差值是否大于预设时段;
确定子模块,用于在所述第二时刻与所述第一时刻的差值大于所述预设时段时,根据所述目标应用启动时所述CPU在n个频点中每个频点指示的频率下的起始运行次数,及所述目标应用停止运行时所述CPU在所述每个频点指示的频率下的结束运行次数,确定所述CPU的目标频率,所述n大于或等于1。
可选的,所述确定子模块,还用于:
获取所述n个频点对应的n个运行次数差值,所述每个频点对应的运行次数差值为所述CPU在所述每个频点指示的频率下的结束运行次数与所述CPU在对应频点指示的频率下的起始运行次数的差值;
获取所述n个运行次数差值中的最大值;
判断所述最大值占所述n个运行次数差值的比重是否大于预设值;
当所述最大值占所述n个运行次数差值的比重大于所述预设值时,将所述最大值对应的频率作为所述目标频率;
当所述最大值占所述n个运行次数差值的比重不大于所述预设值时,获取所述n个运行次数差值中的次大值;
将所述最大值对应的频率和所述次大值对应的频率中的较大频率作为所述CPU的最大频率,并将所述最大值对应的频率和所述次大值对应的频率中的较小频率作为所述CPU的最小频率;
将所述最大频率和所述最小频率构成的频率范围中的频率作为所述目标频率。
可选的,所述设置模块,还包括:
第三获取子模块,用于获取所述CPU在所述n个频点中所述每个频点指示的频率下的起始运行次数;
第四获取子模块,用于在所述目标应用停止运行时,获取所述CPU在所述每个频点指示的频率下的结束运行次数。
可选的,所述装置还包括:
添加模块,用于将所述目标标识和设置的所述目标频率添加至所述第一对应关系中。
本发明提供了一种终端功耗控制方法及装置,该方法先查询预设的第一对应关系中是否存在目标标识,当第一对应关系中不存在目标标识时,根据目标应用的目标标识设置CPU的目标频率,并向CPU发送包括CPU的目标频率的指示消息,从而实现了CPU在目标应用运行过程中,根据指示消息控制CPU的频率符合目标频率,该目标应用为第三方应用中的任一种应用,相较于现有技术,无需手动测试,且未针对部分常用的第三方应用,而是针对所有第三方应用,因此,简化了功耗控制的步骤,提高了实用性。
应当理解的是,以上的一般描述和后文的细节描述仅是示例性和解释性的,并不能限制本发明。
附图说明
为了更清楚地说明本发明实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1是本发明实施例提供的一种终端功耗控制方法的流程图;
图2-1是本发明实施例提供的另一种终端功耗控制方法的流程图;
图2-2是本发明实施例提供的一种设置CPU的目标频率的流程图;
图2-3是本发明实施例提供的一种确定CPU的目标频率的流程图;
图3-1是本发明实施例提供的一种终端功耗控制装置的结构示意图;
图3-2是本发明实施例提供的一种设置模块的结构示意图;
图3-3是本发明实施例提供的另一种设置模块的结构示意图;
图3-4是本发明实施例提供的另一种终端功耗控制装置的结构示意图。
通过上述附图,已示出本发明明确的实施例,后文中将有更详细的描述。这些附图和文字描述并不是为了通过任何方式限制本发明构思的范围,而是通过参考特定实施例为本领域技术人员说明本发明的概念。
具体实施方式
为使本发明的目的、技术方案和优点更加清楚,下面将结合附图对本发明实施方式作进一步地详细描述。
本发明实施例提供了一种终端功耗控制方法,如图1所示,该方法包括:
步骤101、在目标应用启动时,获取目标应用的目标标识,该目标应用为第三方应用中的任一种应用。
步骤102、查询预设的第一对应关系中是否存在目标标识,该第一对应关系用于记录标识和CPU的频率的对应关系。
步骤103、当第一对应关系中不存在目标标识时,根据目标应用的目标标识设置CPU的目标频率。
步骤104、生成指示消息,该指示消息包括CPU的目标频率。
步骤105、向CPU发送指示消息,该指示消息用于指示CPU在目标应用运行过程中,根据指示消息控制CPU的频率符合目标频率。
综上所述,本发明实施例提供的终端功耗控制方法,该方法先查询预设的第一对应关系中是否存在目标标识,当第一对应关系中不存在目标标识时,根据目标应用的目标标识设置CPU的目标频率,并向CPU发送包括CPU的目标频率的指示消息,从而实现了CPU在目标应用运行过程中,根据指示消息控制CPU的频率符合目标频率,该目标应用为第三方应用中的任一种应用,相较于现有技术,无需手动测试,且未针对部分常用的第三方应用,而是针对所有第三方应用,因此,简化了功耗控制的步骤,提高了实用性。
本发明实施例提供了另一种终端功耗控制方法,如图2-1所示,该方法包括:
步骤201、在目标应用启动时,获取目标应用的目标标识。执行步骤202。
该方法可应用于预先创建于终端操作系统中的监听进程。该监听进程为自动处理目标应用的智能进程,该操作系统可以为安卓操作系统,也可以为其他操作系统,本发明实施例对此不做限定。
该目标应用为第三方应用中的任一种应用。可选的,目标标识可以为目标应用的名称。此外,目标标识还可以为目标应用的身份标识号码(英文:IDentity;简称:ID),本发明实施例对目标标识的具体形式不作限定。
步骤202、查询预设的第一对应关系中是否存在目标标识。当第一对应关系中存在目标标识时,执行步骤203;当第一对应关系中不存在目标标识时,执行步骤204。
第一对应关系用于记录标识和CPU的频率的对应关系。该第一对应关系可以由结构体数组来实现,如表1所示。表1中,应用的标识为应用的名称,应用A对应的CPU的频率为960MHz(兆赫兹),应用B对应的CPU的频率为500MHz~960MHz。此外,该结构体数组还预留有多个空位,用于存放后续设置的目标频率。
表1
标识 | CPU的频率 |
应用A | 960MHz |
应用B | 500MHz~960MHz |
该第一对应关系中记录的CPU的频率可以包括CPU的最大频率和CPU的最小频率,相应的,该第一对应关系也可以如表2所示,表2中,应用的标识为应用的名称,应用A对应的CPU的最大频率为960MHz,应用A对应的CPU的最小频率也为960MHz,应用A对应的CPU的最大频率与其对应的CPU的最小频率相等,均为960M。应用B对应的CPU的最大频率为960M,应用B对应的CPU的最小频率为500M。
表2
以表2为例,假设步骤201中获取的目标应用的目标标识为应用B,通过查询表2,可以确定第一对应关系中存在该目标标识;如果步骤201中获取的目标应用的目标标识为应用C,通过查询表2,可以确定第一对应关系中不存在该目标标识。示例的,查询表2时可以采用顺序查找方式。
步骤203、在第一对应关系中获取目标标识对应的CPU的目标频率。执行步骤206。
以表2为例,假设步骤201中获取的目标应用的目标标识为应用B,通过查询表2,可以确定第一对应关系中存在该目标标识,那么可以在第一对应关系中获取该目标标识(即应用B)对应的CPU的目标频率,该目标频率包括CPU的最大频率960MHz和CPU的最小频率500MHz。获取到目标标识对应的CPU的目标频率后,执行步骤206和步骤207,完成CPU的目标频率的下发过程。
步骤204、根据目标应用的目标标识设置CPU的目标频率。执行步骤205。
可选的,如图2-2所示,步骤204可以包括:
步骤2041、获取目标标识指示的目标应用启动时的第一时刻。
为了获得更加准确的n个频点对应的n个运行次数差值,进而得到准确的CPU的目标频率,可以判断目标应用停止运行时的第二时刻与目标应用启动时的第一时刻的差值是否大于预设时段,进而确定是否需要继续执行后续步骤。所以,可以先获取目标标识指示的目标应用启动时的第一时刻Ta。
步骤2042、获取CPU在n个频点中每个频点指示的频率下的起始运行次数。
该n大于或等于1。频点指的是频率的编号。表3示出了5个频点中每个频点指示的频率,如表3所示,频点C0指示的频率为500MHz,频点C2指示的频率为960MHz,频点C5指示的频率为1400MHz。
表3
频点 | C0 | C1 | C2 | C3 | C4 | C5 |
频率 | 500MHz | 800MHz | 960MHz | 1120MHz | 1300MHz | 1400MHz |
该方法在目标应用启动时获取CPU在n个频点中每个频点指示的频率下的起始运行次数。具体的,可以在终端idle界面下读取节点/sys/devices/system/cpu/cpu0/cpufreq/stats/time_in_state的值,得到CPU在n个频点中每个频点指示的频率下的起始运行次数。其中,idle界面是一个能够编辑、运行、浏览和调试程序的图形用户界面(英文:Graphical User Interface;简称:GUI)。以表3为例,假设获取的CPU在频点C0指示的频率(即500MHz)下的起始运行次数C0s为20,CPU在频点C1指示的频率(即800MHz)下的起始运行次数C1s为30,CPU在频点C2指示的频率(即960MHz)下的起始运行次数C2s为24,CPU在频点C3指示的频率(即1120MHz)下的起始运行次数C3s为35,CPU在频点C4指示的频率(即1300MHz)下的起始运行次数C4s为15,CPU在频点C5指示的频率(即1400MHz)下的起始运行次数C5s为40。需要说明的是,步骤2042和步骤2041可同时执行,无先后顺序。
步骤2043、获取目标标识指示的目标应用停止运行时的第二时刻。
获取目标标识指示的目标应用停止运行时的第二时刻Tb。
步骤2044、在目标应用停止运行时,获取CPU在每个频点指示的频率下的结束运行次数。
获取CPU在n个频点中每个频点指示的频率下的起始运行次数后,在目标应用停止运行时,统计CPU在每个频点指示的频率下的结束运行次数。
以表3为例,假设获取的CPU在频点C0指示的频率(即500MHz)下的结束运行次数C0e为25,CPU在频点C1指示的频率(即800MHz)下的结束运行次数C1e为40,CPU在频点C2指示的频率(即960MHz)下的结束运行次数C2e为30,CPU在频点C3指示的频率(即1120MHz)下的结束运行次数C3e为48,CPU在频点C4指示的频率(即1300MHz)下的结束运行次数C4e为23,CPU在频点C5指示的频率(即1400MHz)下的结束运行次数C5e为55。需要说明的是,步骤2044和步骤2043可同时执行,无先后顺序。
步骤2045、判断第二时刻与第一时刻的差值是否大于预设时段。
可选的,该预设时段可以为10分钟。通过判断Tb与Ta的差值是否大于预设时段来确定是否需要继续执行后续步骤。其中,Tb为步骤2043获取的目标应用停止运行时的第二时刻,Ta为步骤2041获取的目标应用启动时的第一时刻。如果Tb与Ta的差值不大于预设时段,则不再执行后续步骤;如果Tb与Ta的差值大于预设时段,则继续执行后续步骤。
步骤2046、当第二时刻与第一时刻的差值大于预设时段时,根据目标应用启动时CPU在n个频点中每个频点指示的频率下的起始运行次数,及目标应用停止运行时CPU在每个频点指示的频率下的结束运行次数,确定CPU的目标频率。
当第二时刻与第一时刻的差值大于预设时段时,根据步骤2042获取的起始运行次数,及步骤2044获取的结束运行次数,确定CPU的目标频率。
可选的,如图2-3所示,步骤2046可以包括:
步骤2046a、获取n个频点对应的n个运行次数差值。执行步骤2046b。
每个频点对应的运行次数差值为CPU在每个频点指示的频率下的结束运行次数与CPU在对应频点指示的频率下的起始运行次数的差值。
以表3为例,获取的频点C0对应的运行次数差值C0x为CPU在频点C0指示的频率(即500MHz)下的结束运行次数C0e与CPU在频点C0指示的频率下的起始运行次数C0s的差值,由于C0e为25,C0s为20,所以C0x为5。同样的,频点C1对应的运行次数差值C1x为10,频点C2对应的运行次数差值C2x为6,频点C3对应的运行次数差值C3x为13,频点C4对应的运行次数差值C4x为8,频点C5对应的运行次数差值C5x为15。
步骤2046b、获取n个运行次数差值中的最大值。步骤2046c。
以表3为例,获取的5个运行次数差值中的最大值即为频点C5对应的运行次数差值C5x(C5x为15)。
步骤2046c、判断最大值占n个运行次数差值的比重是否大于预设值。当最大值占n个运行次数差值的比重大于预设值时,执行步骤2046d;当最大值占n个运行次数差值的比重不大于预设值时,执行步骤2046e。
示例的,预设值可以为0.7。以表3为例,判断频点C5对应的运行次数差值C5x占5个运行次数差值的比重是否大于0.7。具体的,根据频点C5对应的运行次数差值C5x以及5个运行次数差值,可以得到C5x占5个运行次数差值的比重为0.26小于0.7,所以执行步骤2046e。假设计算得到C5x占5个运行次数差值的比重为0.8,则执行步骤2046d。
步骤2046d、将最大值对应的频率作为目标频率。
如果n个运行次数差值中的最大值占n个运行次数差值的比重大于预设值,则将最大值对应的频率作为目标频率。该目标频率用于CPU在目标应用运行过程中对CPU的频率进行控制。当最大值占n个运行次数差值的比重大于预设值时,可以认为相应的频点为目标应用最适合的运行频点,最大值对应的频率为目标应用运行过程中,CPU最适合的运行频率。
步骤2046e、获取n个运行次数差值中的次大值。执行步骤2046f。
如果n个运行次数差值中的最大值占n个运行次数差值的比重不大于预设值,则获取n个运行次数差值中的次大值。
以步骤2046c中频点C5对应的运行次数差值C5x占5个运行次数差值的比重等于0.26为例,由于0.26小于预设值(如0.7),所以可获取5个运行次数差值中的次大值,即频点C3对应的运行次数差值C3x(C3x为13)。
示例的,可以采用分治法获取n个运行次数差值中的最大值和n个运行次数差值中的次大值。其中,分治法的设计思想是,将一个难以直接解决的大问题,分割成一些规模较小的相同问题来解决。分治法包括排序算法,如快速排序算法及归并排序算法等。采用分治法获取最大值和次大值的过程可以参考现有技术,在此不再赘述。
步骤2046f、将最大值对应的频率和次大值对应的频率中的较大频率作为CPU的最大频率,并将最大值对应的频率和次大值对应的频率中的较小频率作为CPU的最小频率。执行步骤2046g。
在获取了n个运行次数差值中的最大值和n个运行次数差值中的次大值后,可以将最大值对应的频率和次大值对应的频率中的较大频率作为CPU的最大频率,并将最大值对应的频率和次大值对应的频率中的较小频率作为CPU的最小频率,以便于得到CPU的目标频率。以步骤2046b获取的最大值C5x,步骤2046e中获取的次大值C3x为例,由于次大值C3x对应的频率为1120MHz,最大值C5x对应的频率为1400MHz,那么可将1400MHz作为CPU的最大频率,1120MHz作为CPU的最小频率。当最大值占n个运行次数差值的比重不大于预设值时,在目标应用运行过程中,CPU的最大频率和最小频率不相等。
需要说明的是,判断最大值占n个运行次数差值的比重是否大于预设值,当最大值占n个运行次数差值的比重大于预设值时,将最大值对应的频率作为目标频率。此时,在目标应用运行过程中,CPU也有最大频率和最小频率,且CPU的最大频率和最小频率相等,均为目标频率。
步骤2046g、将最大频率和最小频率构成的频率范围中的频率作为目标频率。
假设步骤2046f确定的CPU的最大频率为1400MHz,最小频率为1120MHz,那么可以将1120MHz~1400MHz中的频率作为CPU的目标频率。假设步骤2046f确定的CPU的最大频率为960MHz,最小频率为500MHz,那么可以将500MHz~960MHz中的频率作为CPU的目标频率。
步骤205、将目标标识和设置的目标频率添加至第一对应关系中。执行步骤206。
具体的,可以按照从前往后的顺序将目标标识和设置的目标频率添加至结构体数组的NULL项(即结构体数组预留的空位)。为方便下次目标应用运行时,直接获取目标标识对应的CPU的目标频率,可以将目标标识和设置的目标频率添加至第一对应关系中,这样一来,当目标应用再次运行时,可以直接根据第一对应关系获取目标应用对应的CPU的目标频率。
需要补充说明的是,步骤205为可选步骤。如果本次未将目标标识和设置的目标频率添加至第一对应关系中,下次目标应用运行时,若从第一对应关系中无法获取目标标识对应的CPU的目标频率,再次根据目标应用的目标标识确定CPU的目标频率也是可以的。
本发明实施例中的第一对应关系,能够用于记录任一第三方应用的标识和CPU的频率的对应关系,实现了自动化完成CPU频率的适配的效果。
步骤206、生成指示消息。执行步骤207。
该指示消息包括CPU的目标频率。该方法在确定了CPU的目标频率后,可以生成指示消息,该指示消息包括CPU的目标频率,如960MHz。
步骤207、向CPU发送指示消息。
该指示消息用于指示CPU在目标应用运行过程中,根据指示消息控制CPU的频率符合目标频率。在目标应用运行时,该方法下发CPU的目标频率,使得CPU进入特定的性能与功耗的均衡模式,进而有效降低了终端功耗,提高了功耗控制的效果。
需要补充说明的是,现有技术中,终端续航能力的提升是一个十分关键的问题,如何降低终端功耗变得越来越重要。尽管终端的系统应用与部分常用的第三方应用被做了一定的优化处理,但优化过程较复杂,优化难度较高,且无法全面覆盖所有的第三方应用,因而无法从根本上解决终端功耗控制的问题,大大降低了用户体验。
本发明实施例针对终端运行第三方应用,导致终端功耗消耗较严重的问题,提供了一种终端功耗控制方法,该方法可通过添加在终端的操作系统上的监听进程,侦查任一第三方应用的启动。当第三方应用被启动时,该监听进程便开始进行计算,具体的,该监听进程将计算的第三方应用运行时CPU的负载,换算为CPU的运行频率,然后将换算的运行频率保存在第一对应关系中,该第一对应关系可以由结构体数组来实现。该方法无需人工处理即可自动得到任一第三方应用运行时,所需的CPU的最大频率和CPU的最小频率,解决了现有技术中因手动测试而使优化过程较复杂,难度较高的问题,达到了自动化计算任一第三方应用运行时的CPU的负载的目的。该方法适用于所有第三方应用,能够自动完成第三方应用对应的CPU的频率的适配,控制终端功耗。
本发明实施例提供的终端功耗控制方法,保证了应用在终端上的流畅运行,延长了终端被使用的时间,且能让终端最大程度的省电。该终端功耗控制方法可以应用于智能设备领域,该智能设备包括但不限于智能手机。
还需要说明的是,本发明实施例提供的终端功耗控制方法的步骤的先后顺序可以进行适当调整,步骤也可以根据情况进行相应增减。任何熟悉本技术领域的技术人员在本发明揭露的技术范围内,可轻易想到变化的方法,都应涵盖在本发明的保护范围之内,因此不再赘述。
综上所述,本发明实施例提供的终端功耗控制方法,该方法先查询预设的第一对应关系中是否存在目标标识,当第一对应关系中不存在目标标识时,根据目标应用的目标标识设置CPU的目标频率,并向CPU发送包括CPU的目标频率指示消息,从而实现了CPU在目标应用运行过程中,根据指示消息控制CPU的频率符合目标频率,该目标应用为第三方应用中的任一种应用,相较于现有技术,无需手动测试,且未针对部分常用的第三方应用,而是针对所有第三方应用,因此,简化了功耗控制的步骤,提高了实用性,提高了用户体验。
本发明实施例提供了一种终端功耗控制装置300,如图3-1所示,该装置300包括:
第一获取模块301,用于在目标应用启动时,获取目标应用的目标标识,该目标应用为第三方应用中的任一种应用。
查询模块302,用于查询预设的第一对应关系中是否存在目标标识,该第一对应关系用于记录标识和CPU的频率的对应关系。
设置模块303,用于在第一对应关系中不存在目标标识时,根据目标应用的目标标识设置CPU的目标频率。
生成模块304,用于生成指示消息,该指示消息包括CPU的目标频率。
发送模块305,用于向CPU发送指示消息,该指示消息用于指示CPU在目标应用运行过程中,根据指示消息控制CPU的频率符合目标频率。
综上所述,本发明实施例提供的终端功耗控制装置,该装置先查询预设的第一对应关系中是否存在目标标识,当第一对应关系中不存在目标标识时,根据目标应用的目标标识设置CPU的目标频率,并向CPU发送包括CPU的目标频率指示消息,从而实现了CPU在目标应用运行过程中,根据指示消息控制CPU的频率符合目标频率,该目标应用为第三方应用中的任一种应用,相较于现有技术,无需手动测试,且未针对部分常用的第三方应用,而是针对所有第三方应用,因此,简化了功耗控制的步骤,提高了实用性。
可选的,如图3-2所示,设置模块303,包括:
第一获取子模块3031,用于获取目标标识指示的目标应用启动时的第一时刻。
第二获取子模块3032,用于获取目标标识指示的目标应用停止运行时的第二时刻。
判断子模块3033,用于判断第二时刻与第一时刻的差值是否大于预设时段。
确定子模块3034,用于在第二时刻与第一时刻的差值大于预设时段时,根据目标应用启动时CPU在n个频点中每个频点指示的频率下的起始运行次数,及目标应用停止运行时CPU在每个频点指示的频率下的结束运行次数,确定CPU的目标频率,n大于或等于1。
可选的,确定子模块3034,还用于:
获取n个频点对应的n个运行次数差值,每个频点对应的运行次数差值为CPU在每个频点指示的频率下的结束运行次数与CPU在对应频点指示的频率下的起始运行次数的差值;
获取n个运行次数差值中的最大值;
判断最大值占n个运行次数差值的比重是否大于预设值;
当最大值占n个运行次数差值的比重大于预设值时,将最大值对应的频率作为目标频率;
当最大值占n个运行次数差值的比重不大于预设值时,获取n个运行次数差值中的次大值;
将最大值对应的频率和次大值对应的频率中的较大频率作为CPU的最大频率,并将最大值对应的频率和次大值对应的频率中的较小频率作为CPU的最小频率;
将最大频率和最小频率构成的频率范围中的频率作为目标频率。
可选的,如图3-3所示,设置模块303,还包括:
第三获取子模块3035,用于获取CPU在n个频点中每个频点指示的频率下的起始运行次数。
第四获取子模块3036,用于在目标应用停止运行时,获取CPU在每个频点指示的频率下的结束运行次数。
此外,图3-3中其他标号的含义可以参考图3-2进行说明,在此不再赘述。
可选的,如图3-4所示,该装置300还可以包括:
添加模块306,用于将目标标识和设置的目标频率添加至第一对应关系中。
可选的,如图3-4所示,装置300还可以包括:
第二获取模块307,用于在第一对应关系中存在目标标识时,在第一对应关系中获取目标标识对应的CPU的目标频率。
此外,图3-4中其他标号的含义可以参考图3-1进行说明,在此不再赘述。
综上所述,本发明实施例提供的终端功耗控制装置,该装置先查询预设的第一对应关系中是否存在目标标识,当第一对应关系中不存在目标标识时,根据目标应用的目标标识设置CPU的目标频率,并向CPU发送包括CPU的目标频率指示消息,从而实现了CPU在目标应用运行过程中,根据指示消息控制CPU的频率符合目标频率,该目标应用为第三方应用中的任一种应用,相较于现有技术,无需手动测试,且未针对部分常用的第三方应用,而是针对所有第三方应用,因此,简化了功耗控制的步骤,提高了实用性,提高了用户体验。
本发明实施例还提供了一种终端,包括图3-1或图3-4所示的终端功耗控制装置。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的装置和模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
以上所述仅为本发明的较佳实施例,并不用以限制本发明,凡在本发明的精神和原则之内,所作的任何修改、等同替换、改进等,均应包含在本发明的保护范围之内。
Claims (10)
1.一种终端功耗控制方法,其特征在于,所述方法包括:
在目标应用启动时,获取所述目标应用的目标标识,所述目标应用为第三方应用中的任一种应用;
查询预设的第一对应关系中是否存在所述目标标识,所述第一对应关系用于记录标识和中央处理器CPU的频率的对应关系;
当所述第一对应关系中不存在所述目标标识时,根据所述目标应用的目标标识设置所述CPU的目标频率;
生成指示消息,所述指示消息包括所述CPU的目标频率;
向所述CPU发送所述指示消息,所述指示消息用于指示所述CPU在所述目标应用运行过程中,根据所述指示消息控制所述CPU的频率符合所述目标频率。
2.根据权利要求1所述的方法,其特征在于,所述根据所述目标应用的目标标识设置所述CPU的目标频率,包括:
获取所述目标标识指示的所述目标应用启动时的第一时刻;
获取所述目标标识指示的所述目标应用停止运行时的第二时刻;
判断所述第二时刻与所述第一时刻的差值是否大于预设时段;
当所述第二时刻与所述第一时刻的差值大于所述预设时段时,根据所述目标应用启动时所述CPU在n个频点中每个频点指示的频率下的起始运行次数,及所述目标应用停止运行时所述CPU在所述每个频点指示的频率下的结束运行次数,确定所述CPU的目标频率,所述n大于或等于1。
3.根据权利要求2所述的方法,其特征在于,所述根据所述目标应用启动时所述CPU在n个频点中每个频点指示的频率下的起始运行次数,及所述目标应用停止运行时所述CPU在所述每个频点指示的频率下的结束运行次数,确定所述CPU的目标频率,包括:
获取所述n个频点对应的n个运行次数差值,所述每个频点对应的运行次数差值为所述CPU在所述每个频点指示的频率下的结束运行次数与所述CPU在对应频点指示的频率下的起始运行次数的差值;
获取所述n个运行次数差值中的最大值;
判断所述最大值占所述n个运行次数差值的比重是否大于预设值;
当所述最大值占所述n个运行次数差值的比重大于所述预设值时,将所述最大值对应的频率作为所述目标频率;
当所述最大值占所述n个运行次数差值的比重不大于所述预设值时,获取所述n个运行次数差值中的次大值;
将所述最大值对应的频率和所述次大值对应的频率中的较大频率作为所述CPU的最大频率,并将所述最大值对应的频率和所述次大值对应的频率中的较小频率作为所述CPU的最小频率;
将所述最大频率和所述最小频率构成的频率范围中的频率作为所述目标频率。
4.根据权利要求2所述的方法,其特征在于,在所述确定所述CPU的目标频率之前,所述方法还包括:
获取所述CPU在所述n个频点中所述每个频点指示的频率下的起始运行次数;
在所述目标应用停止运行时,获取所述CPU在所述每个频点指示的频率下的结束运行次数。
5.根据权利要求1所述的方法,其特征在于,在所述根据所述目标应用的目标标识设置所述CPU的目标频率之后,所述方法还包括:
将所述目标标识和设置的所述目标频率添加至所述第一对应关系中。
6.一种终端功耗控制装置,其特征在于,所述装置包括:
第一获取模块,用于在目标应用启动时,获取所述目标应用的目标标识,所述目标应用为第三方应用中的任一种应用;
查询模块,用于查询预设的第一对应关系中是否存在所述目标标识,所述第一对应关系用于记录标识和中央处理器CPU的频率的对应关系;
设置模块,用于在所述第一对应关系中不存在所述目标标识时,根据所述目标应用的目标标识设置所述CPU的目标频率;
生成模块,用于生成指示消息,所述指示消息包括所述CPU的目标频率;
发送模块,用于向所述CPU发送所述指示消息,所述指示消息用于指示所述CPU在所述目标应用运行过程中,根据所述指示消息控制所述CPU的频率符合所述目标频率。
7.根据权利要求6所述的装置,其特征在于,所述设置模块,包括:
第一获取子模块,用于获取所述目标标识指示的所述目标应用启动时的第一时刻;
第二获取子模块,用于获取所述目标标识指示的所述目标应用停止运行时的第二时刻;
判断子模块,用于判断所述第二时刻与所述第一时刻的差值是否大于预设时段;
确定子模块,用于在所述第二时刻与所述第一时刻的差值大于所述预设时段时,根据所述目标应用启动时所述CPU在n个频点中每个频点指示的频率下的起始运行次数,及所述目标应用停止运行时所述CPU在所述每个频点指示的频率下的结束运行次数,确定所述CPU的目标频率,所述n大于或等于1。
8.根据权利要求7所述的装置,其特征在于,所述确定子模块,还用于;
获取所述n个频点对应的n个运行次数差值,所述每个频点对应的运行次数差值为所述CPU在所述每个频点指示的频率下的结束运行次数与所述CPU在对应频点指示的频率下的起始运行次数的差值;
获取所述n个运行次数差值中的最大值;
判断所述最大值占所述n个运行次数差值的比重是否大于预设值;
当所述最大值占所述n个运行次数差值的比重大于所述预设值时,将所述最大值对应的频率作为所述目标频率;
当所述最大值占所述n个运行次数差值的比重不大于所述预设值时,获取所述n个运行次数差值中的次大值;
将所述最大值对应的频率和所述次大值对应的频率中的较大频率作为所述CPU的最大频率,并将所述最大值对应的频率和所述次大值对应的频率中的较小频率作为所述CPU的最小频率;
将所述最大频率和所述最小频率构成的频率范围中的频率作为所述目标频率。
9.根据权利要求7所述的装置,其特征在于,所述设置模块,还包括:
第三获取子模块,用于获取所述CPU在所述n个频点中所述每个频点指示的频率下的起始运行次数;
第四获取子模块,用于在所述目标应用停止运行时,获取所述CPU在所述每个频点指示的频率下的结束运行次数。
10.根据权利要求6所述的装置,其特征在于,所述装置还包括:
添加模块,用于将所述目标标识和设置的所述目标频率添加至所述第一对应关系中。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610349797.5A CN105975050A (zh) | 2016-05-24 | 2016-05-24 | 终端功耗控制方法及装置 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201610349797.5A CN105975050A (zh) | 2016-05-24 | 2016-05-24 | 终端功耗控制方法及装置 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN105975050A true CN105975050A (zh) | 2016-09-28 |
Family
ID=56956385
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201610349797.5A Pending CN105975050A (zh) | 2016-05-24 | 2016-05-24 | 终端功耗控制方法及装置 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN105975050A (zh) |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107122036A (zh) * | 2017-04-18 | 2017-09-01 | 青岛海信移动通信技术股份有限公司 | 中央处理器频率调节方法及装置 |
CN107391254A (zh) * | 2017-06-14 | 2017-11-24 | 深圳天珑无线科技有限公司 | 智能终端及其资源配置方法、计算机可读存储介质 |
WO2020077508A1 (zh) * | 2018-10-15 | 2020-04-23 | 华为技术有限公司 | 一种对内部存储器动态调频的方法及电子设备 |
Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6278421B1 (en) * | 1996-11-06 | 2001-08-21 | Fujitsu Limited | Method and apparatus for controlling power consumption of display unit, display system equipped with the same, and storage medium with program stored therein for implementing the same |
CN102999391A (zh) * | 2012-11-21 | 2013-03-27 | 华为技术有限公司 | 一种调节处理器运行频率的方法和装置 |
CN103941844A (zh) * | 2014-04-29 | 2014-07-23 | 联想(北京)有限公司 | 一种频率调整方法及电子设备 |
CN104007806A (zh) * | 2014-06-20 | 2014-08-27 | 中科创达软件股份有限公司 | 一种安卓系统中的cpu频率的控制方法、装置和设备 |
CN104424031A (zh) * | 2013-08-23 | 2015-03-18 | 中兴通讯股份有限公司 | 一种处理器工作频率的控制方法及装置 |
CN104794005A (zh) * | 2015-03-23 | 2015-07-22 | 北京畅游天下网络技术有限公司 | 一种优化cpu运行频率的方法及装置 |
-
2016
- 2016-05-24 CN CN201610349797.5A patent/CN105975050A/zh active Pending
Patent Citations (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6278421B1 (en) * | 1996-11-06 | 2001-08-21 | Fujitsu Limited | Method and apparatus for controlling power consumption of display unit, display system equipped with the same, and storage medium with program stored therein for implementing the same |
CN102999391A (zh) * | 2012-11-21 | 2013-03-27 | 华为技术有限公司 | 一种调节处理器运行频率的方法和装置 |
CN104424031A (zh) * | 2013-08-23 | 2015-03-18 | 中兴通讯股份有限公司 | 一种处理器工作频率的控制方法及装置 |
CN103941844A (zh) * | 2014-04-29 | 2014-07-23 | 联想(北京)有限公司 | 一种频率调整方法及电子设备 |
CN104007806A (zh) * | 2014-06-20 | 2014-08-27 | 中科创达软件股份有限公司 | 一种安卓系统中的cpu频率的控制方法、装置和设备 |
CN104794005A (zh) * | 2015-03-23 | 2015-07-22 | 北京畅游天下网络技术有限公司 | 一种优化cpu运行频率的方法及装置 |
Cited By (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN107122036A (zh) * | 2017-04-18 | 2017-09-01 | 青岛海信移动通信技术股份有限公司 | 中央处理器频率调节方法及装置 |
CN107122036B (zh) * | 2017-04-18 | 2020-01-14 | 青岛海信移动通信技术股份有限公司 | 中央处理器频率调节方法及装置 |
CN107391254A (zh) * | 2017-06-14 | 2017-11-24 | 深圳天珑无线科技有限公司 | 智能终端及其资源配置方法、计算机可读存储介质 |
WO2020077508A1 (zh) * | 2018-10-15 | 2020-04-23 | 华为技术有限公司 | 一种对内部存储器动态调频的方法及电子设备 |
CN112639675A (zh) * | 2018-10-15 | 2021-04-09 | 华为技术有限公司 | 一种对内部存储器动态调频的方法及电子设备 |
CN112639675B (zh) * | 2018-10-15 | 2023-10-20 | 华为技术有限公司 | 一种对内部存储器动态调频的方法及电子设备 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106055070B (zh) | 终端功耗控制方法及装置 | |
CN104899103B (zh) | 一种移动云计算终端节能调度方法和装置 | |
CN105975050A (zh) | 终端功耗控制方法及装置 | |
CN106412091A (zh) | 数据传输的控制方法、装置及系统 | |
CN103336684B (zh) | 一种并发处理ap消息的ac及其处理方法 | |
CN106161524A (zh) | 一种基于分布式资源节点的资源下载方法及装置 | |
CN105897813A (zh) | 心跳消息发送方法、接收方法及装置 | |
CN106803833A (zh) | 长连接中心跳的处理方法、装置及系统 | |
CN107844187A (zh) | 功耗管理方法、装置及电子设备 | |
CN109117306A (zh) | 一种基于对象读写时延调整数据恢复速度的方法及装置 | |
CN109564458A (zh) | 应用程序特定的,性能感知的能量优化 | |
CN110060678A (zh) | 一种基于智能设备的虚拟角色控制方法及智能设备 | |
CN109615138A (zh) | 一种作业流程调优方法及装置 | |
CN112685298A (zh) | 应用程序的代码覆盖测试方法、装置以及电子设备 | |
CN104837187B (zh) | 无线接入设备的节能方法及装置 | |
CN107155211A (zh) | WiFi发射功率的调节方法、装置、移动终端及存储介质 | |
CN103942103A (zh) | 多核体系中处理器调度策略的生成方法及装置、调度系统 | |
CN107918676B (zh) | 结构化查询的资源优化方法及数据库查询系统 | |
CN111918353B (zh) | 移动终端的邻区信号测量的方法及装置 | |
CN109788325A (zh) | 视频任务分配方法及服务器 | |
CN110401939B (zh) | 一种低功耗蓝牙控制器链路层装置 | |
WO2021057023A1 (zh) | 一种基于部件温度自动分配计算资源的降功耗方法和系统 | |
CN104468379B (zh) | 基于最短逻辑距离的虚拟Hadoop集群节点选择方法及装置 | |
CN106776227A (zh) | 一种实现不同类型风扇智能识别的方法及系统 | |
CN106131331A (zh) | 一种对多个智能设备进行统一控制的方法、设备和系统 |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
C06 | Publication | ||
PB01 | Publication | ||
C10 | Entry into substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
RJ01 | Rejection of invention patent application after publication |
Application publication date: 20160928 |
|
RJ01 | Rejection of invention patent application after publication |