CN117149409A - 一种调整cpu频率的方法及终端设备 - Google Patents
一种调整cpu频率的方法及终端设备 Download PDFInfo
- Publication number
- CN117149409A CN117149409A CN202310990106.XA CN202310990106A CN117149409A CN 117149409 A CN117149409 A CN 117149409A CN 202310990106 A CN202310990106 A CN 202310990106A CN 117149409 A CN117149409 A CN 117149409A
- Authority
- CN
- China
- Prior art keywords
- application
- frequency
- cpu
- raising
- duration
- 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
- 238000000034 method Methods 0.000 title claims abstract description 141
- 230000008569 process Effects 0.000 claims abstract description 61
- 238000012545 processing Methods 0.000 claims abstract description 41
- 230000000694 effects Effects 0.000 claims description 20
- 230000004044 response Effects 0.000 claims description 13
- 238000004590 computer program Methods 0.000 claims description 5
- 239000002699 waste material Substances 0.000 abstract description 11
- 230000006870 function Effects 0.000 description 20
- 238000004364 calculation method Methods 0.000 description 18
- 238000010586 diagram Methods 0.000 description 16
- 238000004891 communication Methods 0.000 description 15
- 238000007726 management method Methods 0.000 description 8
- 238000013461 design Methods 0.000 description 6
- 230000005236 sound signal Effects 0.000 description 6
- 238000013528 artificial neural network Methods 0.000 description 4
- 229920001621 AMOLED Polymers 0.000 description 3
- 230000008878 coupling Effects 0.000 description 3
- 238000010168 coupling process Methods 0.000 description 3
- 238000005859 coupling reaction Methods 0.000 description 3
- 238000013500 data storage Methods 0.000 description 3
- 230000003993 interaction Effects 0.000 description 3
- 238000012417 linear regression Methods 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 230000000903 blocking effect Effects 0.000 description 2
- 238000013523 data management Methods 0.000 description 2
- 239000004973 liquid crystal related substance Substances 0.000 description 2
- 238000003672 processing method Methods 0.000 description 2
- 239000002096 quantum dot Substances 0.000 description 2
- 238000009877 rendering Methods 0.000 description 2
- 230000000007 visual effect Effects 0.000 description 2
- 238000013459 approach Methods 0.000 description 1
- 239000011230 binding agent Substances 0.000 description 1
- 238000013529 biological neural network Methods 0.000 description 1
- 230000015572 biosynthetic process Effects 0.000 description 1
- 210000004556 brain Anatomy 0.000 description 1
- 238000004422 calculation algorithm Methods 0.000 description 1
- 210000004027 cell Anatomy 0.000 description 1
- 230000001413 cellular effect Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000019771 cognition Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000001514 detection method Methods 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000004927 fusion Effects 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 230000004807 localization Effects 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 230000001537 neural effect Effects 0.000 description 1
- 210000002569 neuron Anatomy 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 230000005855 radiation Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000003786 synthesis reaction Methods 0.000 description 1
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
-
- 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/329—Power saving characterised by the action undertaken by task scheduling
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Software Systems (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Power Sources (AREA)
Abstract
本申请提供了一种调整CPU频率的方法及终端设备,涉及终端技术领域。先冷启动第一应用,第一应用启动时提升CPU的频率;在第一应用第一帧加载完成后的第一提频时长后,降低CPU的频率。第一应用启动完成后,冷启动第二应用,启动第二应用时提升CPU的频率;第二应用的第一帧加载完成后的第二提频时长后,降低CPU的频率。由于第一提频时长是根据第一应用的第一帧加载所用的时长计算出的,第二提频时长是根据第二应用的第一帧加载所用的时长计算出的;应用的第一帧加载所用的时长越大,相应的,计算出的提频时长越长;CPU提频时长与估算出的应用的冷启动速度相匹配。既能保证CPU能力得到充分使用,加速应用冷启动的完整过程,又避免CPU功耗浪费。
Description
本案是分案申请,原申请的申请号是202310553047.X,原申请的申请日是2023年05月16日,原申请的全部内容通过引用结合在本申请中。
技术领域
本申请涉及终端技术领域,尤其涉及一种调整CPU频率的方法及终端设备。
背景技术
随着智能终端的普及,终端上安装的应用越来越多,用户往往会打开多个应用。应用启动是一个应用从创建进程(create process)到完全展示在用户面前的过程,对于用户来讲,自然是越快越好。应用启动需要消耗终端设备上各种资源,例如中央处理器(centralprocessing unit,CPU)、图形处理器(graph processing unit,GPU)、内存、I/O(input/output)资源等。
一般来说,终端设备会提供各种资源的最大能力满足应用启动需求。比如,当应用启动时,终端设备会提升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提频时长越长;CPU提频时长与应用的启动速度相匹配。
结合第一方面,在一种可能的实施方式中,第一应用的第一帧加载完成,包括:第一应用的主界面Activity启动完成;第二应用的第一帧加载完成,包括:第二应用的主界面Activity启动完成。
结合第一方面,在一种可能的实施方式中,提升CPU的频率即将CPU的频率由第一值提升至第二值;降低CPU的频率即将CPU的频率由第二值降低至第一值。
第二方面,提供了一种调整CPU频率的方法,应用于终端设备,终端设备包括中央处理器CPU,该终端设备安装有第一应用和第二应用,该方法包括:
启动第一应用,其中,第一应用启动前,终端设备系统后台不存在第一应用的进程;
响应于启动第一应用,提升CPU的频率;
启动第二应用;其中,第二应用启动前,终端设备系统后台不存在第二应用的进程;第二应用是在第一应用启动之后启动的,第二应用启动时,第一应用未启动完成;
在第二应用的第一帧加载完成之后的第二提频时长后,降低CPU的频率。
结合第二方面,在一种可能的实施方式中,该方法还包括:根据第一应用的第一帧加载所用的时长及预设的对应关系获取第一提频时长;根据第二应用的第一帧加载所用的时长及预设的对应关系获取第二提频时长;其中,第一应用的第一帧加载所用的时长小于第二应用的第一帧加载所用的时长,第一提频时长小于第二提频时长。
在该方法中,如果多个应用启动过程在时间线上发生重叠,在启动时刻最早的应用启动时,提升CPU频率。在计算出的,多个应用中启动完成时刻最晚的时刻到达时,降低CPU频率。这样,CPU提频时长与应用的冷启动速度相匹配,既能保证CPU能力得到充分使用,加速应用冷启动的完整过程,又避免CPU功耗浪费。
第三方面,提供了一种调整CPU频率的方法,应用于终端设备,终端设备包括中央处理器CPU,该终端设备安装有第一应用,该方法包括:
在第一时刻启动第一应用,响应于启动第一应用,提升CPU的频率;其中,第一应用的启动过程包括第一阶段和第二阶段,第二阶段是第一应用的启动过程中除第一阶段之外的阶段,第二阶段在第一阶段之后。根据第一时刻和第二时刻(第一应用的第一阶段启动完成时刻)获取第一阶段所用的时长;根据第一阶段所用的时长及预设的对应关系,确定第二阶段所用的时长;根据第二阶段所用的时长确定第三时刻(第二阶段的结束时刻);在第三时刻,降低CPU的频率。
在该方法中,第一应用启动,CPU提频(提升CPU的频率)。在第一应用启动的第一阶段完成(比如第一应用的主界面Activity加载完成)时,根据第一阶段所用的时长估计第一应用的第二阶段启动完成的时长,将估计出的第二阶段启动需要的时长作为CPU提频剩余时长,即根据第一阶段所用时长(比如第一帧启动时长)动态调整CPU提频时长,使得CPU提频时长与估计的第一应用启动完成时长相等;即CPU提频时长与第一应用启动速度相匹配。既能保证CPU能力得到充分使用,加速第一应用冷启动的完整过程,又避免CPU功耗浪费。由于第一应用的CPU提频时长是根据第一应用本次启动的实际情况动态获取的,确定出的CPU提频时长更准确,对CPU能力的利用更高效。
结合第三方面,在一种可能的实施方式中,第一阶段为第一应用的第一帧加载完成的阶段。
结合第三方面,在一种可能的实施方式中,第一应用的第一帧加载完成,包括:第一应用的主界面Activity启动完成。
结合第三方面,在一种可能的实施方式中,提升CPU的频率,包括:将CPU的频率由第一值提升至第二值;降低CPU的频率,包括:将CPU的频率由第二值降低至第一值。
结合第三方面,在一种可能的实施方式中,对应关系是根据N个应用(比如统计出的用户使用频率最高的N个应用)的启动数据进行线性回归获取到的;其中,N个应用中第i个应用的启动数据包括:第i个应用启动过程的第一阶段所用的时长Xi,以及第i个应用启动过程的第二阶段所用的时长Yi;其中,N>0。
也就是说,根据统计的N个应用的启动过程的实际情况,获取应用启动的第一阶段与第二阶段的对应关系。这样的话,根据第一阶段所用的时长估计出的第二阶段所用的时长更准确。
结合第三方面,在一种可能的实施方式中,第一应用启动前,终端设备系统后台不存在所述第一应用的进程。也就是说,该启动过程是冷启动。
结合第三方面,在一种可能的实施方式中,终端设备接收用户对第一应用的启动操作;响应于启动操作,启动第一应用。
结合第三方面,在一种可能的实施方式中,响应于第二应用的调用,启动第一应用。
结合第三方面,在一种可能的实施方式中,若确定第一阶段所用的时长与第二阶段所用的时长之和小于或等于预设的最大提频时长阈值,根据第二阶段所用的时长获取第三时刻,在第三时刻降低CPU的频率。若确定第一阶段所用的时长与第二阶段所用的时长之和大于预设的最大提频时长阈值,根据最大提频时长阈值获取第四时刻,第四时刻为比第一时刻晚最大提频时长阈值的时刻;在第四时刻,降低CPU的频率。
在该方法中,预先设置CPU提频的最大提频时长阈值,表示终端设备的CPU提频时长的最大值。也就是说,CPU提频时长应该小于或等于最大提频时长阈值。这样,可以避免第一应用冷启动占用的CPU资源过多,导致其他进程分配不到CPU资源,造成系统卡顿。
第四方面,提供了一种终端设备,该终端设备具有实现上述第一方面、第二方面或第三方面所述的方法的功能。该功能可以通过硬件实现,也可以通过硬件执行相应的软件实现。该硬件或软件包括一个或多个与上述功能相对应的模块。
第五方面,提供了一种终端设备,包括:处理器和存储器;该存储器用于存储计算机执行指令,当该终端设备运行时,该处理器执行该存储器存储的该计算机执行指令,以使该终端设备执行如上述第一方面、第二方面或第三方面中任一项所述的方法。
第六方面,提供了一种终端设备,包括:处理器;所述处理器用于与存储器耦合,并读取存储器中的指令之后,根据所述指令执行如上述第一方面、第二方面或第三方面中任一项所述的方法。
第七方面,提供了一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机可以执行上述第一方面、第二方面或第三方面中任一项所述的方法。
第八方面,提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机可以执行上述第一方面、第二方面或第三方面中任一项所述的方法。
第九方面,提供了一种装置(例如,该装置可以是芯片系统),该装置包括处理器,用于支持终端设备实现上述第一方面、第二方面或第三方面中所涉及的功能。在一种可能的设计中,该装置还包括存储器,该存储器,用于保存终端设备必要的程序指令和数据。该装置是芯片系统时,可以由芯片构成,也可以包含芯片和其他分立器件。
其中,第四方面至第九方面中任一种设计方式所带来的技术效果可参见第一方面、第二方面或第三方面中不同设计方式所带来的技术效果,此处不再赘述。
附图说明
图1A为CPU提频时长大于应用冷启动时长的一种示意图;
图1B为CPU提频时长小于应用冷启动时长的一种示意图;
图2为本申请实施例提供的调整CPU频率的方法的原理示意图;
图3为本申请实施例提供的调整CPU频率的方法的流程示意图;
图4为本申请实施例提供的调整CPU频率的方法所适用的一种终端设备的硬件结构示意图;
图5A为本申请实施例提供的调整CPU频率的方法所适用的一种终端设备的软件架构示意图;
图5B为本申请实施例提供的调整CPU频率的方法的一种模块交互示意图;
图6为本申请实施例提供的一种终端设备上两个冷启动速度不同的应用启动时的CPU提频处理方法示意图;
图7为本申请实施例提供的调整CPU频率的方法的一种场景实例示意图;
图8为本申请实施例提供的调整CPU频率的方法的另一种场景实例示意图;
图9为本申请实施例提供的调整CPU频率的方法的又一种场景实例示意图;
图10为本申请实施例提供的一种终端设备结构组成示意图;
图11为本申请实施例提供的一种芯片系统结构组成示意图。
具体实施方式
在本申请实施例的描述中,以下实施例中所使用的术语只是为了描述特定实施例的目的,而并非旨在作为对本申请的限制。如在本申请的说明书和所附权利要求书中所使用的那样,单数表达形式“一种”、“所述”、“上述”、“该”和“这一”旨在也包括例如“一个或多个”这种表达形式,除非其上下文中明确地有相反指示。还应当理解,在本申请以下各实施例中,“至少一个”、“一个或多个”是指一个或两个以上(包含两个)。术语“和/或”,用于描述关联对象的关联关系,表示可以存在三种关系;例如,A和/或B,可以表示:单独存在A,同时存在A和B,单独存在B的情况,其中A、B可以是单数或者复数。字符“/”一般表示前后关联对象是一种“或”的关系。
在本说明书中描述的参考“一个实施例”或“一些实施例”等意味着在本申请的一个或多个实施例中包括结合该实施例描述的特定特征、结构或特点。由此,在本说明书中的不同之处出现的语句“在一个实施例中”、“在一些实施例中”、“在其他一些实施例中”、“在另外一些实施例中”等不是必然都参考相同的实施例,而是意味着“一个或多个但不是所有的实施例”,除非是以其他方式另外特别强调。术语“包括”、“包含”、“具有”及它们的变形都意味着“包括但不限于”,除非是以其他方式另外特别强调。术语“连接”包括直接连接和间接连接,除非另外说明。“第一”、“第二”仅用于描述目的,而不能理解为指示或暗示相对重要性或者隐含指明所指示的技术特征的数量。
在本申请实施例中,“示例性的”或者“例如”等词用于表示作例子、例证或说明。本申请实施例中被描述为“示例性的”或者“例如”的任何实施例或设计方案不应被解释为比其它实施例或设计方案更优选或更具优势。确切而言,使用“示例性的”或者“例如”等词旨在以具体方式呈现相关概念。
应用有冷启动、热启动等多种启动方式;其中,应用的冷启动是比较费时的一种方式。应用A启动前,若终端设备系统后台不存在应用A的进程,则系统需要为应用A创建新的进程,将这种启动过程记为冷启动。应用A启动前,若终端设备系统后台存在应用A的进程,则系统不再需要为应用A创建进程,将这种启动过程记为热启动。需要说明的是,本申请实施例中应用启用A前,指的是应用A将要启动时;即触发应用A启动时,以及触发应用A启动之前较短的一段时间之内。
在一些场景中,用户的操作触发应用冷启动。例如,终端设备的桌面包括应用1的应用图标1,用户点击应用图标1,响应于用户对应用图标1的点击操作,应用1冷启动。例如,用户输入语音“打开应用1”,响应于接收到用户语音,应用1冷启动。在一些场景中,其他应用的调用,触发应用冷启动。例如,终端设备上运行应用2,应用2拉起应用1,应用1冷启动。
冷启动过程可以包括,从接收到用户启动应用的操作或其他应用的调用,至应用主界面完整地展示在终端屏幕上为止。通常,终端会通过CPU提频方式加速应用冷启动过程,缩短应用冷启动时长。CPU提频也叫CPU拉频,是指将CPU的工作频率提高到其工作频率范围的最高值或者较高值,以使得应用分配到较多的处理资源。在一种实现方式中,可以将CPU的工作频率提高至一个目标频率;在另一种实现方式中,可以将CPU的工作频率提高一个预设量。
一般来说,终端会设置一个统一的CPU提频时长,应用冷启动开始,触发CPU提频;CPU提频时长截止,则停止CPU提频。这种方式是针对所有应用的通用方案,所有应用的CPU提频时长都相同。
但是,不同应用的冷启动时长差异很大。例如,表1示出了同一个终端上不同的20个应用的冷启动时长。
表1
可以看出,最长和最短的冷启动时长之间相差约3.7s。统一的CPU提频时长配置,不能适用每一个应用。
参考图1A,如果将CPU提频时长设置为一个较大的值,满足冷启动较慢的应用的CPU使用需求;在冷启动时长较短的应用冷启动时,长时间的CPU提频会造成CPU资源的浪费,浪费太多功耗。例如,将CPU提频时长设置为4714ms;当应用18冷启动时,1053ms就可以启动完成,剩余的3661ms的CPU提频资源被浪费;当应用12冷启动时,2042ms就可以启动完成,剩余的2672ms的CPU提频资源被浪费。
参考图1B,如果将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功耗浪费。
在一种实施方式中,第一应用冷启动的第一阶段为,第一应用第一帧加载的阶段。示例性的,参考图2,接收到用户的启动操作(比如用户点击第一应用的应用图标)或其他应用的调用,第一应用启动,CPU提频开始。在第一应用第一帧加载完成时,终端设备获取第一应用第一帧加载的时长,即获取第一时长。其中,第一应用第一帧加载完成是指:第一应用的主界面Activity启动完成;也就是说,第一阶段为:第一应用开始启动(接收到用户启动应用的操作或其他应用的调用)至第一应用的主界面Activity(MainActivity)启动完成。
终端设备根据第一时长计算第二时长;第二时长即第一应用启动过程中除第一帧外的其余帧加载的时长,即第一应用第一帧加载完成至第一应用冷启动完成耗费的时长。其中,第一应用启动完成是指:第一应用的主界面Activity(MainActivity)上全部元素(控件、弹窗等)加载完成,即第一应用的主界面Activity上全部元素绘制完成并成功显示。
在一种实现方式中,可以预先采集同一平台上使用频率最高的N个(比如100个)应用的冷启动数据。分别获取N个应用中每个应用冷启动过程第一帧加载完成耗费的时长X,以及第一帧加载完成至应用冷启动完成耗费的时长Y。示例性的,采集N个应用冷启动过程中的数据,获取(X1,Y1),(X2,Y2),……,(Xi,Yi),……,(XN,YN)。根据(X1,Y1),(X2,Y2),……,(Xi,Yi),……,(XN,YN),进行线性回归,获取第一帧加载完成耗费的时长X与第一帧加载完成至第一应用冷启动完成耗费的时长Y之间的对应关系。例如,X与Y的对应关系为,Y=aX+b,根据(X1,Y1),(X2,Y2),……,(Xi,Yi),……,(XN,YN)进行线性回归,计算出a和b的值;这样就获取到第一帧加载完成耗费的时长X与第一帧加载完成至第一应用冷启动完成耗费的时长Y之间的对应关系。
可以理解的,在另一些实现方式中,不需要采集N个应用冷启动的实际数据,而是预先配置X与Y的对应关系。例如,预先设置Y=X等。在另一些实现方式中,X与Y可以不是线性对应关系。例如,X=Y2等。
终端设备可以预先保存X与Y的对应关系,例如保存a和b的值。当终端设备在第一应用第一帧加载完成时,获取第一时长,即获取到X的值。终端设备根据X与Y的对应关系,可以计算出Y的值,即获取到第二时长的值。经过第二时长后,终端设备停止CPU提频。
从CPU提频开始至CPU提频结束,CPU提频时长为第一时长与第二时长之和。由于第一时长与第二时长之和,也是第一应用从启动开始至启动完成的时长,因此,CPU提频时长与第一应用启动过程的总时长是相匹配的。
在一种实现方式中,可以预先设置CPU提频的最大提频时长阈值,表示终端设备的CPU提频时长的最大值。也就是说,如果第二时长小于或等于最大提频时长阈值与第一时长之差,即,第二时长<=(最大提频时长阈值-第一时长),根据第二时长确定CPU提频截止时刻。如果第二时长大于最大提频时长阈值与第一时长之差,根据最大提频时长阈值确定CPU提频截止时刻。这样,可以避免第一应用冷启动占用的CPU资源过多,导致其他进程分配不到CPU资源,造成系统卡顿。
图3示出了本申请实施例提供的调整CPU频率的方法的一种流程示意图。如图3所示,该方法可以包括:
S101、第一应用启动。
在一种实现方式中,终端设备接收到用户启动第一应用的操作,响应于该操作,第一应用启动。比如,用户点击第一应用的应用图标,第一应用启动。比如,终端设备接收到用户输入的语音“打开第一应用”,第一应用启动。
在一种实现方式中,响应于第二应用的调用,第一应用启动。比如,响应于购物应用的调用,支付应用启动。
S102、判断第一应用是否冷启动。如果是第一应用冷启动,执行S103。
可选的,终端设备判断第一应用是否冷启动。在一种实现方式中,如果确定在第一应用启动前,操作系统中不存在第一应用对应的进程,则确定第一应用是冷启动。示例性的,接收到用户的启动操作或响应于第二应用的调用,确定操作系统中不存在第一应用对应的进程,操作系统创建第一应用对应的进程。
需要说明的是,本申请实施例中,以第一应用的冷启动过程作为示例,对本申请实施例提供的调整CPU频率的方法进行详细介绍。在另一些实施方式中,本申请实施例提供的调整CPU频率的方法,可以应用于第一应用热启动、对第一应用的窗口执行滑动操作、在第一应用界面上执行滑动操作等其他需要执行CPU提频的场景。在这些场景中调整CPU频率的方法,可以参考第一应用冷启动场景,本申请实施例中不再一一进行示例。
S103、开始CPU提频,标记第一时刻。
第一时刻为CPU提频的开始时刻。
CPU提频即提升CPU的频率;比如,将CPU的频率由当前的第一值提升至第二值,第二值大于第一值。可以理解的,CPU可以包括多个CPU核。在一种实现方式中,提升CPU的频率,即提升全部CPU核的频率。在另一种实现方式中,可以提升第一应用绑定的CPU核的频率,即提升多个CPU核中部分CPU核的频率。
S104、加载第一应用的第一帧。
第一应用启动后,开始加载第一帧。
S105、第一应用的第一帧在第二时刻加载完成,获取加载第一应用的第一帧所用的时长,即获取第一时长。
在一种实现方式中,第一应用的主界面Activity启动完成,即确定第一应用的第一帧加载完成。第一应用的主界面Activity启动完成的时刻为第二时刻。
其中,第一应用的第一帧加载时长(第一时长)=第二时刻-第一时刻。
S106、根据第一时长计算第二时长。
根据第一帧加载完成耗费的时长X与第一帧加载完成至第一应用冷启动完成耗费的时长Y之间的对应关系,以及第一时长,计算出第二时长。该第二时长是根据第一帧加载完成耗费的时长,以及X与Y的对应关系,估计得出的。也就是说,根据第一帧加载完成耗费的时长,预估第一帧加载完成至第一应用冷启动完成耗费的时长。
S107、根据第二时长确定CPU提频截止时刻。
在一种实现方式中,预先设置CPU提频的最大提频时长阈值。
如果确定第一应用的第一帧加载时长(第一时长)与计算出的第二时长之和小于或等于最大提频时长阈值,确定CPU提频截止时刻(第三时刻)=第二时刻+第二时长。
如果确定第一应用的第一帧加载时长(第一时长)与第二时长之和大于最大提频时长阈值,确定CPU提频截止时刻(第四时刻)=第二时刻+(最大提频时长阈值-第一时长)。
S108、到达CPU提频截止时刻,停止CPU提频。
在一种实现方式中,到达CPU提频截止时刻,不再对CPU进行提频。示例性的,CPU提频后,CPU频率为第二值,到达CPU提频截止时刻,降低CPU的频率。比如,将CPU的频率由当前的第二值降低至第一值。
如果CPU包括多个CPU核。在一种可能的实现方式中,S103中提升了第一应用绑定的CPU核的频率;则将第一应用绑定的CPU核的频率降低至第一值。在一种可能的实现方式中,S103中提升了全部CPU核的频率(由第一值提升至第二值)。可选的,在一种示例中,可以将全部CPU核的频率降低至第一值。在另一种示例中,可以将多个CPU核中一部分的频率保持在第二值,将多个CPU核中另一部分关闭。
本申请实施例提供的调整CPU频率的方法,响应于用户启动第一应用的操作,或第二应用对第一应用的调用,第一应用启动。第一应用启动,CPU提频开始。在第一应用的主界面Activity加载完成时,根据第一应用加载第一帧的时长计算CPU提频剩余时长,即根据第一帧启动时长动态调整CPU提频时长。CPU提频时长与第一应用启动速度相匹配,既能保证CPU能力得到充分使用,加速第一应用冷启动的完整过程,又避免CPU功耗浪费。由于第一应用的CPU提频时长是根据第一应用本次启动的实际情况动态获取的,确定出的CPU提频时长更准确,对CPU能力的利用更高效。
本申请实施例提供的调整CPU频率的方法,可以应用于支持CPU提频的终端设备。上述终端设备可以包括手机、平板电脑、笔记本电脑、个人电脑(personal computer,PC)、超级移动个人计算机(ultra-mobile personal computer,UMPC)、手持计算机、上网本、智能家居设备(比如,智能电视、智慧屏、大屏、智能音箱、智能空调等)、个人数字助理(personal digital assistant,PDA)、可穿戴设备(比如,智能手表、智能手环等)、车载设备、虚拟现实设备等,本申请实施例对此不做任何限制。
应理解的是,除了终端设备以外,本发明实施例提供的方法也可以应用于其他类型的计算机系统。
示例性的,请参考图4,其示出了一种终端设备100的结构示意图。终端设备100可包括处理器110,外部存储器接口120,内部存储器121,音频模块130,扬声器130A,麦克风130B,显示屏140,通信模块150,电源模块160,输入装置170,传感器模块180等。其中,传感器模块180可以包括压力传感器、触摸传感器等。
可以理解的是,本申请实施例示意的结构并不构成对终端设备100的具体限定。在本申请另一些实施例中,终端设备100可以包括比图示更多或更少的部件,或者组合某些部件,或者拆分某些部件,或者不同的部件布置。图示的部件可以以硬件,软件或软件和硬件的组合实现。
处理器110可以包括一个或多个处理单元。例如:处理器110可以包括应用处理器(application processor,AP),调制解调处理器,图形处理器(graphics processingunit,GPU),图像信号处理器(image signal processor,ISP),控制器,视频编解码器,数字信号处理器(digital signal processor,DSP),和/或神经网络处理器(neural-networkprocessing unit,NPU)等。其中,不同的处理单元可以是独立的部件,也可以集成在一个或多个处理器中。在一些实施例中,终端设备100也可以包括一个或多个处理器110。
其中,控制器是终端设备100的神经中枢和指挥中心。可以根据指令操作码和时序信号,产生操作控制信号,完成取指令和执行指令的控制。
应用处理器上可以运行终端设备100的操作系统,用于管理终端设备100的硬件与软件资源。比如,管理与配置内存、决定系统资源供需的优先次序、控制输入与输出设备、操作网络、管理文件系统、管理驱动程序等。操作系统也可以用于提供一个让用户与系统交互的操作界面。其中,操作系统内可以安装各类软件,比如,驱动程序,应用程序(application,App)等。
NPU为神经网络(neural-network,NN)计算处理器,通过借鉴生物神经网络结构,例如借鉴人脑神经元之间传递模式,对输入信息快速处理,还可以不断的自学习。通过NPU可以实现终端设备100的智能认知等应用。
处理器110中还可以设置存储器,用于存储指令和数据。在一些实施例中,处理器110中的存储器为高速缓冲存储器。该存储器可以保存处理器110刚用过或循环使用的指令或数据。如果处理器110需要再次使用该指令或数据,可从所述存储器中直接调用。避免了重复存取,减少了处理器110的等待时间,因而提高了系统的效率。
在一些实施例中,处理器110可以包括一个或多个接口。接口可以包括集成电路间(inter-integrated circuit,I2C)接口,集成电路间音频(integrated circuit sound,I2S)接口,脉冲编码调制(pulse code modulation,PCM)接口,通用异步收发传输器(universal asynchronous receiver/transmitter,UART)接口,移动产业处理器接口(mobile industry processor interface,MIPI),通用输入输出(general-purposeinput/output,GPIO)接口,SIM卡接口,和/或USB接口等。
可以理解的是,本申请实施例示意的各模块间的接口连接关系,只是示意性说明,并不构成对终端设备100的结构限定。在本申请另一些实施例中,终端设备100也可以采用上述实施例中不同的接口连接方式,或多种接口连接方式的组合。
外部存储器接口120可以用于连接外部存储卡,例如Micro SD卡,实现扩展终端设备100的存储能力。外部存储卡通过外部存储器接口120与处理器110通信,实现数据存储功能。例如将音乐,视频等文件保存在外部存储卡中。
内部存储器121可以用于存储一个或多个计算机程序,该一个或多个计算机程序包括指令。处理器110可以通过运行存储在内部存储器121的上述指令,从而使得终端设备100执行本申请一些实施例中所提供的应用运行方法,以及各种应用以及数据管理等。内部存储器121可以包括代码存储区和数据存储区。其中,数据存储区可存储终端设备100使用过程中所创建的数据等。此外,内部存储器121可以包括高速随机存取存储器,还可以包括非易失性存储器,例如一个或多个磁盘存储部件,闪存部件,通用闪存存储器(universalflash storage,UFS)等。在一些实施例中,处理器110可以通过运行存储在内部存储器121的指令,和/或存储在设置于处理器110中的存储器的指令,来使得终端设备100执行本申请实施例中所提供的应用运行方法,以及其他应用及数据管理。
终端设备100可以通过音频模块130,扬声器130A,麦克风130B,以及应用处理器等实现音频功能。例如音乐播放,录音等。音频模块130用于将数字音频信息转换成模拟音频信号输出,也用于将模拟音频输入转换为数字音频信号。音频模块130还可以用于对音频信号编码和解码。在一些实施例中,音频模块130可以设置于处理器110中,或将音频模块130的部分功能模块设置于处理器110中。
扬声器130A,也称“喇叭”,用于将音频电信号转换为声音信号。
麦克风130B,也称“话筒”,“传声器”,用于将声音信号转换为电信号。用户可以通过人嘴靠近麦克风130B发声,将声音信号输入到麦克风130B。
终端设备100的通信功能可以通过天线1,天线2以及通信模块150等实现。
通信模块150可以提供应用在终端设备100上的包括蜂窝,Wi-Fi,蓝牙(bluetooth,BT),无线数传模块(例如,433MHz,868MHz,915MHz)等无线通信的解决方案。通信模块150可以是集成至少一个通信处理模块的一个或多个器件。通信模块150经由天线1或者天线2接收电磁波,将电磁波信号滤波以及调频处理,将处理后的信号发送到处理器110。通信模块150还可以从处理器110接收待发送的信号,对其进行调频,放大,经天线1或者天线2转为电磁波辐射出去。
终端设备100通过GPU,显示屏140,以及应用处理器等实现显示功能。GPU为图像处理的微处理器,连接显示屏140和应用处理器。GPU用于执行数学和几何计算,用于图形渲染。处理器110可包括一个或多个GPU,其执行程序指令以生成或改变显示信息。
显示屏140用于显示图像,视频等。显示屏140包括显示面板。显示面板可以采用液晶显示屏(liquid crystal display,LCD),有机发光二极管(organic light-emittingdiode,OLED),有源矩阵有机发光二极体或主动矩阵有机发光二极体(active-matrixorganic light emitting diode的,AMOLED),柔性发光二极管(flex light-emittingdiode,FLED),Miniled,MicroLed,Micro-oLed,量子点发光二极管(quantum dot lightemitting diodes,QLED)等。在一些实施例中,终端设备100可以包括1个或N个显示屏140,N为大于1的正整数。本申请实施例中,显示屏140可以用于显示UI,以及接收用户对UI的操作。
在一些实施例中,显示屏140上设置有压力传感器、触摸传感器等。压力传感器用于感受压力信号,可以将压力信号转换成电信号。当有触摸操作作用于显示屏140,终端设备100根据压力传感器检测所述触摸操作强度。终端设备100也可以根据压力传感器的检测信号计算触摸的位置。触摸传感器,也称“触控面板”,可以与显示屏140组成触摸屏,也称“触控屏”。触摸传感器用于检测作用于其上或附近的触摸操作。触摸传感器可以将检测到的触摸操作传递给应用处理器,以确定触摸事件类型。还可以通过显示屏140提供与触摸操作相关的视觉输出。
电源模块160,可以用于向终端设备100包含的各个部件供电。在一些实施例中,该电源模块160可以是电池,如可充电电池。
输入装置170可以包括键盘、鼠标器等。键盘用于将英文字母、数字、标点符号等输入终端设备100,从而向终端设备100发出命令,输入数据等。鼠标器是终端设备100显示系统纵横坐标定位的指示器,用于向终端设备100输入指令等。其中,输入装置170可以通过有线连接方式连接终端设备100,比如,输入装置170通过GPIO接口、USB接口等连接终端设备100。输入装置170还可以通过无线方式连接终端设备100,比如,输入装置170通过蓝牙、红外等方式连接终端设备100。
在本申请实施例中,上述终端设备100是可以运行操作系统,安装应用程序的终端设备。可选地,终端设备运行的操作系统可以是系统,/>系统,/>系统等。
以上述终端设备100是手机为例。终端设备100的软件系统可以采用分层架构,事件驱动架构,微核架构,微服务架构,或云架构。本发明实施例以分层架构的Android系统为例,示例性说明终端设备100的软件结构。
图5A是本发明实施例的终端设备100的软件结构框图。
分层架构将软件分成若干个层,每一层都有清晰的角色和分工。层与层之间通过软件接口通信。在一些实施例中,将Android系统分为四层,从上至下分别为应用程序层,应用程序框架层,安卓运行时(Android runtime)和系统库,以及内核层。
应用程序层可以包括一系列应用程序包。例如,相机,图库,日历,通话,地图,导航,WLAN,蓝牙,音乐,视频,短信息,应用1,应用2,应用3等应用程序。
应用程序框架层为应用程序层的应用程序提供应用编程接口(applicationprogramming interface,API)和编程框架。应用程序框架层包括一些预先定义的函数。
如图5A所示,应用程序框架层可以包括窗口管理器,内容提供器,通话管理器,视图系统,资源管理器,通知管理器,活动管理器(Activity manager service,AMS),提频计算模块1等。
窗口管理器用于管理窗口程序。窗口管理器可以获取显示屏大小,判断是否有状态栏,锁定屏幕,截取屏幕等。
通话管理器用于提供终端设备100的通信功能。例如通话状态的管理(包括接通,挂断等)。
内容提供器用来存放和获取数据,并使这些数据可以被应用程序访问。所述数据可以包括视频,图像,音频,拨打和接听的电话,浏览历史和书签,电话簿等。
视图系统包括可视控件,例如显示文字的控件,显示图片的控件等。视图系统可用于构建应用程序。显示界面可以由一个或多个视图组成的。例如,包括短信通知图标的显示界面,可以包括显示文字的视图以及显示图片的视图。
资源管理器为应用程序提供各种资源,比如本地化字符串,图标,图片,布局文件,视频文件等等。
通知管理器使应用程序可以在状态栏中显示通知信息,可以用于传达告知类型的消息,可以短暂停留后自动消失,无需用户交互。比如通知管理器被用于告知下载完成,消息提醒等。通知管理器还可以是以图表或者滚动条文本形式出现在系统顶部状态栏的通知,例如后台运行的应用程序的通知,还可以是以对话窗口形式出现在屏幕上的通知。例如在状态栏提示文本信息,发出提示音,终端设备振动,指示灯闪烁等。
AMS主要负责系统中四大组件的启动、切换、调度及应用进程的管理和调度等工作,其职责与操作系统中的进程管理和调度模块相类似。当发起进程启动或者组件启动时,都会通过Binder通信机制将请求传递给AMS,AMS再做统一处理。
系统库可以包括多个功能模块。例如:表面管理器(surface manager),媒体库(Media Libraries),三维图形处理库(例如:OpenGL ES),2D图形引擎(例如:SGL)等。
表面管理器用于对显示子系统进行管理,并且为多个应用程序提供了2D和3D图层的融合。
媒体库支持多种常用的音频,视频格式回放和录制,以及静态图像文件等。媒体库可以支持多种音视频编码格式,例如:MPEG4,H.264,MP3,AAC,AMR,JPG,PNG等。
三维图形处理库用于实现三维图形绘图,图像渲染,合成,和图层处理等。
2D图形引擎是2D绘图的绘图引擎。
Android runtime负责安卓系统的调度和管理。Android runtime包括核心库和虚拟机。
核心库包含两部分:一部分是java语言需要调用的功能函数,另一部分是安卓的核心库。
核心库包括提频计算模块2。提频计算模块1和提频计算模块2共同管理CPU提频时长等。
应用程序层和应用程序框架层运行在虚拟机中。虚拟机将应用程序层和应用程序框架层的java文件执行为二进制文件。虚拟机用于执行对象生命周期的管理,堆栈管理,线程管理,安全和异常的管理,以及垃圾回收等功能。
内核层是硬件和软件之间的层。内核层可以包含显示驱动,传感器驱动,CPU内核等。
下面结合终端设备100的软件架构,示例性介绍本申请实施例提供的调整CPU频率的方法。
示例性的,如图5A所示,应用1开始启动。例如,手机在屏幕上显示用户界面。用户界面中包括应用1的应用图标。用户点击应用1的应用图标。响应于接收到用户点击应用1应用图标的操作,应用1向AMS发送应用1启动请求。AMS启动应用1,通知核心库应用1已启动。核心库向CPU内核下发提频事件。CPU内核接收到提频事件,触发CPU提频。
当应用1的第一帧加载完成时,应用1通知提频计算模块1第一帧加载完成。提频计算模块1计算应用1的第一帧加载时长。然后调用核心库中提频计算模块2,根据应用1的第一帧加载时长计算CPU提频截止时刻。核心库向CPU内核下发提频结束事件及提频截止时刻。CPU内核接收到提频结束事件,在到达提频截止时刻时,停止CPU提频。
示例性的,结合图5A示出的软件架构,图5B示出了本申请实施例提供的调整CPU频率的方法的一种模块交互示意图。
如图5B所示,本申请实施例提供的调整CPU频率的方法可以包括:
S601、应用1接收到用户的启动操作。
示例性的,应用1在第一时刻接收到用户点击应用1应用图标的操作,记录该第一时刻。
S602、应用1向AMS发送启动请求。
响应于接收到用户的启动操作,应用1向AMS发送启动请求。
S603、AMS启动应用1。
AMS接受到启动请求,开始加载应用1的第一帧,创建第一帧对应的Activity。
S604、AMS通知核心库,应用1已启动。
S605、核心库向CPU内核下发提频事件。
核心库接收到应用1已启动的通知,向CPU内核下发提频事件。
S606、CPU内核触发CPU提频。
在一种实现方式中,CPU内核将CPU的频率由第一值提升至第二值。CPU以较高的频率工作,可以加速应用1的启动过程。
S607、应用1的第一帧加载完成,应用1通知提频计算模块1,第一帧加载完成。
示例性的,应用1的第一帧对应的Activity启动完成,应用1通知提频计算模块1,第一帧加载完成。
S608、提频计算模块1计算应用1第一帧加载时长。
在一种实现方式中,提频计算模块1在第二时刻接收到第一帧加载完成的通知,根据第二时刻与保存的第一时刻,计算应用1第一帧加载时长。其中,应用1第一帧加载时长为第二时刻与第一时刻之差。
S609、提频计算模块1向提频计算模块2发送计算出的第一帧加载时长。
S610、提频计算模块2根据第一帧加载时长计算第一帧加载完成至应用1启动完成的时长。
在一种实现方式中,提频计算模块2根据第一帧加载时长以及预设的对应关系(预先保存的X与Y的对应关系),计算第一帧加载完成至应用1启动完成的时长。
S611、提频计算模块2根据第一帧加载完成至应用1启动完成的时长获取提频截止时刻。
在一种实现方式中,如果第一帧加载完成至应用1启动完成的时长小于或等于(最大提频时长阈值-第一帧加载时长),确定CPU提频截止时刻为(第二时刻+第一帧加载完成至应用1启动完成的时长)。如果第一帧加载完成至应用1启动完成的时长大于(最大提频时长阈值-第一帧加载时长),确定CPU提频截止时刻为(第一时刻+最大提频时长阈值)。
S612、提频计算模块2向CPU内核下发提频结束事件及提频截止时刻。
S613、到达提频截止时刻,CPU内核停止CPU提频。
在一种实现方式中,到达CPU提频截止时刻,不再对CPU进行提频。示例性的,将CPU的频率由当前的第二值降低至第一值。
本申请实施例提供的调整CPU频率的方法,针对每个应用,根据该应用本次冷启动过程的实际速度,动态计算CPU提频时长。
示例性的,图6示出了终端设备上两个冷启动速度不同的应用启动时的CPU提频处理方法示意图。
在一种场景中,参考图6的(a),终端设备接收到用户启动应用1的操作或其他应用的调用,应用1冷启动开始,终端设备触发CPU提频。开始加载应用1的第一帧。在应用1第一帧加载完成时,终端设备获取加载应用1的第一帧的时长。终端设备根据加载应用1的第一帧所用的时长和保存的对应关系计算加载应用1的其余帧(第一帧加载结束至应用1启动完成之间的帧)所用的时长,即获取第一提频时长。在应用1的第一帧加载完成之后的第一提频时长后,降低CPU的频率。
在一种场景中,参考图6的(b),终端设备接收到用户启动应用2的操作或其他应用的调用,应用2冷启动开始,终端设备触发CPU提频。开始加载应用2的第一帧。在应用2第一帧加载完成时,终端设备获取加载应用2的第一帧的时长。终端设备根据加载应用2的第一帧所用的时长和保存的对应关系计算加载应用2的其余帧(第一帧加载结束至应用2启动完成之间的帧)所用的时长,即获取第二提频时长。在应用2的第一帧加载完成之后的第二提频时长后,降低CPU的频率。
可以看出,当应用1的冷启动时长小于应用2的冷启动时长;例如,应用1的冷启动时长为1261ms,应用2的冷启动时长为4714ms;应用1的第一帧加载所用的时长小于应用2的第一帧加载所用的时长。由于第一提频时长是根据加载应用1的第一帧所用的时长和保存的对应关系计算得到的,第二提频时长是根据加载应用2的第一帧所用的时长和保存的对应关系计算得到的;第一提频时长也小于第二提频时长。
也就是说,应用1冷启动时,CPU提频时长是加载应用1的第一帧所用的时长与加载应用1的其余帧(第一帧加载结束至应用1启动完成之间的帧)所用的时长之和,CPU提频时长与应用1的冷启动速度相匹配。应用2冷启动时,CPU提频时长是加载应用2的第一帧所用的时长与加载应用2的其余帧(第一帧加载结束至应用2启动完成之间的帧)所用的时长之和,CPU提频时长与应用2的冷启动速度相匹配。CPU提频时长与每个应用的冷启动速度相匹配,既能保证CPU能力得到充分使用,加速应用冷启动的完整过程,又避免CPU功耗浪费。
在一些实施例中,应用2在应用1启动完成之后启动,即应用1和应用2的启动过程在时间线上不重叠。参考图7,应用1启动。应用1启动时,开始对CPU进行提频处理。根据应用1第一帧加载所用时长计算出应用1第一帧加载完成至应用1启动完成之间的时长(第一提频时长),在估算的应用1启动完成时刻,对CPU进行降频处理。之后,应用2启动时,开始对CPU进行提频处理。根据应用2第一帧加载所用时长计算出应用2第一帧加载完成至应用2启动完成之间的时长(第二提频时长),在估算的应用2启动完成时刻,对CPU进行降频处理。两个应用启动时,分别根据各自第一帧加载所用时长调整本次CPU提频时长。
在一些实施例中,应用1启动过程中应用2启动,应用1启动完成之后应用2启动完成。参考图8,应用1启动。应用1启动时,对CPU进行提频处理;比如,将CPU频率由第一值提升至第二值。在应用1第一帧加载完成时,根据应用1第一帧加载所用时长计算出应用1第一帧加载完成至应用1启动完成之间的时长(第一提频时长)。在应用1第一帧加载过程中,应用2启动。由于响应于应用1的触发,已经对CPU进行了提频处理,在应用2启动后,继续保持CPU提频(CPU的频率提升至第二值)。在计算出的应用1启动完成时刻(第一提频时长结束时刻),由于未到达计算出的应用2启动完成的时刻,继续保持CPU提频(CPU的频率提升至第二值)。在应用2第一帧加载完成时,根据应用2第一帧加载所用时长计算出应用2第一帧加载完成至应用2启动完成之间的时长(第二提频时长)。在计算出的应用2启动完成时刻(第二提频时长结束时刻),对CPU进行降频处理;比如,将CPU频率降低至第一值。
在一些实施例中,参考图9,应用2启动。应用2启动时,对CPU进行提频处理;比如,将CPU频率由第一值提升至第二值。在应用2第一帧加载完成时,根据应用2第一帧加载所用时长计算出应用2第一帧加载完成至应用2启动完成之间的时长(第二提频时长)。在应用2第一帧加载过程中,应用1启动。由于响应于应用2的触发,已经对CPU进行了提频处理,在应用1启动后,继续保持CPU提频(CPU的频率提升至第二值)。在应用1第一帧加载完成时,根据应用1第一帧加载所用时长计算出应用1第一帧加载完成至应用1启动完成之间的时长(第一提频时长)。在计算出的应用1启动完成时刻(第一提频时长结束时刻),由于未到达计算出的应用2启动完成的时刻,继续保持CPU提频(CPU的频率提升至第二值)。在计算出的应用2启动完成时刻(第二提频时长结束时刻),对CPU进行降频处理;比如,将CPU频率降低至第一值。
也就是说,如果多个应用启动过程在时间线上发生重叠,在启动时刻最早的应用启动时,提升CPU频率。在计算出的,多个应用中启动完成时刻最晚的时刻到达时,降低CPU频率。
可以理解的是,本申请实施例提供的终端设备为了实现上述功能,其包含了执行各个功能相应的硬件结构和/或软件模块。本领域技术人员应该很容易意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,本申请实施例能够以硬件或硬件和计算机软件的结合形式来实现。某个功能究竟以硬件还是计算机软件驱动硬件的方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本申请实施例的范围。
本申请实施例可以根据上述方法示例对上述终端设备进行功能模块的划分,例如,可以对应各个功能划分各个功能模块,也可以将两个或两个以上的功能集成在一个处理模块中。上述集成的模块既可以采用硬件的形式实现,也可以采用软件功能模块的形式实现。需要说明的是,本申请实施例中对模块的划分是示意性的,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式。
在一种示例中,请参考图10,其示出了上述实施例中所涉及的终端设备的一种可能的结构示意图。该终端设备700包括:处理单元710和存储单元720。
其中,处理单元710,用于对终端设备700的动作进行控制管理。存储单元720用于保存终端设备700的程序代码和数据,处理单元710调用存储单元720存储的程序代码,以执行以上方法实施例中的各个步骤。
当然,上述终端设备700中的单元模块包括但不限于上述处理单元710和存储单元720。例如,终端设备700中还可以包括显示单元、通信单元、电源单元等。显示单元用于显示终端设备700的用户界面,例如,显示应用图标,显示应用界面等。通信单元用于终端设备700与其他电子设备进行通信;电源单元用于对终端设备700供电。
其中,处理单元710可以是处理器或控制器,例如可以是中央处理器(centralprocessing unit,CPU),图形处理器(graphics processing unit,GPU),数字信号处理器(digital signal processor,DSP),专用集成电路(application-specific integratedcircuit,ASIC),现场可编程门阵列(field programmable gate array,FPGA)或者其他可编程逻辑器件、晶体管逻辑器件、硬件部件或者其任意组合。存储单元720可以是存储器。显示单元可以是显示屏等。
例如,处理单元710为处理器(如图4所示的处理器110),存储单元720可以为存储器(如图4所示的内部存储器121),显示单元可以为显示屏(如图4所示的显示屏140)。本申请实施例所提供的终端设备700可以为图4所示的终端设备100。其中,上述处理器、存储器、显示屏等可以连接在一起,例如通过总线连接。处理器调用存储器存储的程序代码,以执行以上方法实施例中的各个步骤。
本申请实施例还提供一种芯片系统(例如,片上系统(system on a chip,SoC)),如图11所示,该芯片系统包括至少一个处理器801和至少一个接口电路802。处理器801和接口电路802可通过线路互联。例如,接口电路802可用于从其它装置(例如电子设备的存储器)接收信号。又例如,接口电路802可用于向其它装置(例如处理器801或者终端设备的触摸屏)发送信号。示例性的,接口电路802可读取存储器中存储的指令,并将该指令发送给处理器801。当所述指令被处理器801执行时,可使得终端设备执行上述实施例中的各个步骤。当然,该芯片系统还可以包含其他分立器件,本申请实施例对此不作具体限定。
本申请实施例还提供一种计算机可读存储介质,该计算机可读存储介质包括计算机指令,当所述计算机指令在上述终端设备上运行时,使得该终端设备执行上述方法实施例中各个功能或者步骤。
本申请实施例还提供一种计算机程序产品,当所述计算机程序产品在计算机上运行时,使得所述计算机执行上述方法实施例中各个功能或者步骤。
通过以上实施方式的描述,所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能模块完成,即将装置的内部结构划分成不同的功能模块,以完成以上描述的全部或者部分功能。
在本申请所提供的几个实施例中,应该理解到,所揭露的装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述模块或单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个装置,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是一个物理单元或多个物理单元,即可以位于一个地方,或者也可以分布到多个不同地方。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本申请各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个可读取存储介质中。基于这样的理解,本申请实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该软件产品存储在一个存储介质中,包括若干指令用以使得一个设备(可以是单片机,芯片等)或处理器(processor)执行本申请各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(read only memory,ROM)、随机存取存储器(random access memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上内容,仅为本申请的具体实施方式,但本申请的保护范围并不局限于此,任何在本申请揭露的技术范围内的变化或替换,都应涵盖在本申请的保护范围之内。因此,本申请的保护范围应以所述权利要求的保护范围为准。
Claims (17)
1.一种调整CPU频率的方法,应用于终端设备,所述终端设备包括中央处理器CPU,所述终端设备安装有第一应用和第二应用,其特征在于,所述方法包括:
接收用户的第一操作;
响应于所述第一操作,启动所述第一应用,其中,在所述第一应用启动前,所述终端设备系统后台不存在所述第一应用的进程;
在第一时间间隔内提升所述CPU的频率;
其中,所述第一时间间隔包括第一阶段和第二阶段,所述第一阶段为所述第一应用启动至所述第一应用的第一帧加载完成的过程,所述第二阶段为所述第一应用的第一帧加载完成至所述第一时间间隔结束的过程,所述第一阶段持续的时长为第一时长,所述第二阶段持续的时长为第二时长;
接收所述用户的第二操作;
响应于所述第二操作,启动所述第二应用,其中,在所述第二应用启动前,所述终端设备系统后台不存在所述第二应用的进程,所述第二应用的启动时间晚于所述第一应用的启动时间;
在第二时间间隔内提升所述CPU的频率;
其中,所述第二时间间隔包括第三阶段和第四阶段,所述第三阶段为所述第二应用启动至所述第二应用的第一帧加载完成的过程,所述第四阶段为所述第二应用的第一帧加载完成至所述第二时间间隔结束的过程,所述第三阶段持续的时长为第三时长,所述第二阶段持续的时长为第四时长,所述第一时长小于所述第三时长,所述第二时长小于所述第四时长。
2.如权利要求1所述的方法,其特征在于,
所述第一应用的第一帧加载完成,包括:
所述第一应用的主界面Activity启动完成。
3.如权利要求1或2所述的方法,其特征在于,
所述第二应用的第一帧加载完成,包括:
所述第二应用的主界面Activity启动完成。
4.如权利要求1-3中任一项所述的方法,其特征在于,所述在第一时间间隔内提升所述CPU的频率,包括:
在所述第一时间间隔内将所述CPU频率由第一值提升至第二值。
5.如权利要求4所述的方法,其特征在于,所述CPU核包括N个CPU核,所述第一时间间隔内将所述CPU频率由第一值提升至第二值,包括:
在所述第一时间间隔内将所述N个CPU核的频率由所述第一值提升至所述第二值;
或者,在所述第一时间间隔内将所述N个CPU核中的部分CPU核的频率由所述第一值提升至所述第二值。
6.如权利要求5所述的方法,其特征在于,在所述第一时间间隔内将所述N个CPU核中的部分CPU核的频率由所述第一值提升至所述第二值,包括:
在所述第一时间间隔内将所述N个CPU核中的与所述第一应用绑定的CPU核的频率由所述第一值提升至所述第二值。
7.如权利要求1-6中任一项所述的方法,其特征在于,所述在第二时间间隔内提升所述CPU的频率,包括:
在所述第二时间间隔内将所述CPU频率由第三值提升至第四值。
8.如权利要求7所述的方法,其特征在于,所述CPU核包括N个CPU核,所述第二时间间隔内将所述CPU频率由第三值提升至第四值,包括:
在所述第二时间间隔内将所述N个CPU核的频率由所述第三值提升至所述第四值;
或者,在所述第二时间间隔内将所述N个CPU核中的部分CPU核的频率由所述第三值提升至所述第四值。
9.如权利要求8所述的方法,其特征在于,在所述第二时间间隔内将所述N个CPU核中的部分CPU核的频率由所述第三值提升至所述第四值,包括:
在所述第二时间间隔内将所述N个CPU核中的与所述第二应用绑定的CPU核的频率由所述第三值提升至所述第四值。
10.如权利要求1-9中任一项所述的方法,其特征在于,所述第二时长是基于预设的对应关系以及所述第一时长确定的。
11.一种调整CPU频率的方法,应用于终端设备,所述终端设备包括中央处理器CPU,所述终端设备安装有第一应用和第二应用,其特征在于,所述方法包括:
接收用户的第一操作;
响应于所述第一操作,启动所述第一应用,其中,在所述第一应用启动前,所述终端设备系统后台不存在所述第一应用的进程;
在所述第一应用启动过程中加载所述第一应用的第一帧;
在所述第一应用的提频时长内,提升所述CPU的频率;
所述第一应用的提频时长由所述第一应用的第一帧加载时长和第一提频时长组成,所述第一应用的第一帧加载时长为所述第一应用启动到所述第一应用的第一帧加载完成所用的时长,所述第一提频时长为所述第一应用的第一帧加载完成至所述第一应用的提频结束所用的时长;
接收所述用户的第二操作;
响应于所述第二操作,启动所述第二应用,其中,在所述第二应用启动前,所述终端设备系统后台不存在所述第二应用的进程,所述第二应用的启动时间晚于所述第一应用的启动时间;
在所述第二应用启动过程中加载所述第二应用的第一帧;
在所述第二应用的提频时长内,提升所述CPU的频率;
所述第二应用的提频时长由所述第二应用的第一帧加载时长和第二提频时长组成,所述第二应用的第一帧加载时长为所述第二应用启动到所述第二应用的第一帧加载完成所用的时长,所述第二提频时长为所述第二应用的第一帧加载完成至所述第二应用的提频结束所用的时长;
其中,所述第一提频时长小于所述第二提频时长,所述第一应用的第一帧加载时长小于所述第二应用的第一帧加载时长。
12.如权利要求11所述的方法,其特征在于,
所述第一应用的第一帧加载完成,包括:
所述第一应用的主界面Activity启动完成。
13.如权利要求11或12所述的方法,其特征在于,
所述第二应用的第一帧加载完成,包括:
所述第二应用的主界面Activity启动完成。
14.如权利要求11-13中任一项所述的方法,其特征在于,所述CPU核包括N个CPU核,在所述第一应用的提频时长内,提升所述CPU的频率,包括:
在所述第一应用的提频时长内,提升所述N个CPU核的频率;
或者,在所述第一应用的提频时长内,提升所述N个CPU核中的与所述第一应用绑定的CPU核的频率。
15.一种电子设备,其特征在于,所述电子设备包括处理器,所述处理器用于调用存储器中的计算机程序,以执行如权利要求1-14中任一项所述的方法。
16.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质存储有计算机指令,当所述计算机指令在电子设备上运行时,使得所述电子设备执行如权利要求1-14中任一项所述的方法。
17.一种芯片系统,其特征在于,所述芯片系统包括处理器,所述处理器用于调用存储器中的计算机程序,以执行如权利要求1-14中任一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310990106.XA CN117149409A (zh) | 2023-05-16 | 2023-05-16 | 一种调整cpu频率的方法及终端设备 |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310990106.XA CN117149409A (zh) | 2023-05-16 | 2023-05-16 | 一种调整cpu频率的方法及终端设备 |
CN202310553047.X | 2023-05-16 |
Related Parent Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310553047.X Division | 2023-05-16 | 2023-05-16 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117149409A true CN117149409A (zh) | 2023-12-01 |
Family
ID=88921158
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310990106.XA Pending CN117149409A (zh) | 2023-05-16 | 2023-05-16 | 一种调整cpu频率的方法及终端设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117149409A (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109739641A (zh) * | 2018-12-18 | 2019-05-10 | 努比亚技术有限公司 | 一种自适应cpu调频加速方法及装置、移动终端及存储介质 |
CN111240835A (zh) * | 2020-01-06 | 2020-06-05 | 北京小米移动软件有限公司 | Cpu工作频率调整方法、cpu工作频率调整装置及存储介质 |
CN112114975A (zh) * | 2020-10-28 | 2020-12-22 | Oppo广东移动通信有限公司 | 处理器频率的调整方法、装置、存储介质及电子设备 |
CN112789651A (zh) * | 2019-03-27 | 2021-05-11 | 华为技术有限公司 | 一种应用于终端的频率调整方法、装置及电子设备 |
CN113138655A (zh) * | 2021-04-02 | 2021-07-20 | Oppo广东移动通信有限公司 | 处理器频率的调整方法、装置、电子设备及存储介质 |
CN114461053A (zh) * | 2021-08-24 | 2022-05-10 | 荣耀终端有限公司 | 资源调度方法及相关装置 |
CN115237583A (zh) * | 2021-04-22 | 2022-10-25 | 华为技术有限公司 | 计算资源调度方法及装置 |
-
2023
- 2023-05-16 CN CN202310990106.XA patent/CN117149409A/zh active Pending
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109739641A (zh) * | 2018-12-18 | 2019-05-10 | 努比亚技术有限公司 | 一种自适应cpu调频加速方法及装置、移动终端及存储介质 |
CN112789651A (zh) * | 2019-03-27 | 2021-05-11 | 华为技术有限公司 | 一种应用于终端的频率调整方法、装置及电子设备 |
US20220165191A1 (en) * | 2019-03-27 | 2022-05-26 | Huawei Technologies Co., Ltd. | Frequency Adjustment Method and Apparatus Applied to Terminal, and Electronic Device |
CN111240835A (zh) * | 2020-01-06 | 2020-06-05 | 北京小米移动软件有限公司 | Cpu工作频率调整方法、cpu工作频率调整装置及存储介质 |
CN112114975A (zh) * | 2020-10-28 | 2020-12-22 | Oppo广东移动通信有限公司 | 处理器频率的调整方法、装置、存储介质及电子设备 |
CN113138655A (zh) * | 2021-04-02 | 2021-07-20 | Oppo广东移动通信有限公司 | 处理器频率的调整方法、装置、电子设备及存储介质 |
CN115237583A (zh) * | 2021-04-22 | 2022-10-25 | 华为技术有限公司 | 计算资源调度方法及装置 |
CN114461053A (zh) * | 2021-08-24 | 2022-05-10 | 荣耀终端有限公司 | 资源调度方法及相关装置 |
Non-Patent Citations (1)
Title |
---|
高策;孙贝磊;周学海;李曦;: "Cocos2d-x游戏引擎的GPU功耗优化策略", 小型微型计算机系统, no. 05, 15 May 2016 (2016-05-15) * |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US20190187758A1 (en) | Flexible device and operating method therefor | |
US20230367418A1 (en) | Method for Adjusting Touch Panel Sampling Rate and Electronic Device | |
WO2021013019A1 (zh) | 一种图片处理方法及装置 | |
JP2023506936A (ja) | マルチ画面共働方法およびシステム、ならびに電子デバイス | |
CN114816167B (zh) | 应用图标的显示方法、电子设备及可读存储介质 | |
EP4095723B1 (en) | Permission reuse method, permission reuse-based resource access method, and related device | |
CN114077529B (zh) | 日志上传方法、装置、电子设备及计算机可读存储介质 | |
CN115835135A (zh) | 一种cell围栏的匹配方法及电子设备 | |
CN117149409A (zh) | 一种调整cpu频率的方法及终端设备 | |
CN113760192B (zh) | 数据读取方法、装置、存储介质和程序产品 | |
CN114706633A (zh) | 预加载方法、电子设备及存储介质 | |
CN116048317B (zh) | 一种显示方法及装置 | |
CN116719556B (zh) | 系统升级的方法和电子设备 | |
CN116055443B (zh) | 识别社交场景的方法、电子设备及计算机可读存储介质 | |
CN116643778B (zh) | 一种应用程序优化方法及电子设备 | |
WO2022155848A1 (zh) | 虚拟机性能优化的方法及相关装置 | |
WO2024037346A1 (zh) | 页面管理方法及电子设备 | |
CN116736999B (zh) | 电子设备的控制方法和电子设备 | |
CN117009023B (zh) | 显示通知信息的方法及相关装置 | |
WO2024041367A1 (zh) | 一种广告展示的方法、终端、服务器及系统 | |
CN115828227B (zh) | 识别广告弹窗的方法、电子设备及存储介质 | |
WO2024093431A1 (zh) | 一种图像绘制方法及电子设备 | |
WO2022267786A1 (zh) | 一种快捷图标展示方法与终端设备 | |
CN117707718A (zh) | 进程管理的方法、电子设备及可读存储介质 | |
CN117952579A (zh) | 一种信息获取方法及移动终端 |
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 |