本技术属于终端,尤其涉及一种进程释放方法及电子设备。
背景技术:
1、随着电子设备的智能化发展,用户可以在电子设备中安装各种应用来满足日常生活和工作需要。
2、用户在使用电子设备的过程中,很多被使用过的应用的进程会被驻留在后台,从而导致大量内存被占用。通过对后台进程的释放,可以增加可使用内存的大小。
技术实现思路
1、本技术实施例提供了一种进程释放方法及电子设备,可以降低进程释放操作对前台应用的性能的影响。
2、第一方面,提供了一种进程释放方法,该方法应用于电子设备,或者应用于电子设备中的处理器或其他模块,该方法包括:
3、根据电子设备中处理器的负载和/或前台应用的类型确定内存释放方式,内存释放方式包括串行释放方式或并行释放方式;根据内存释放方式释放电子设备中的多个后台进程。
4、在上述方案中,可以根据当前场景(即不同负载情况,和/或不同类型的前台应用)选择不同的内存释放方式来释放后台进程,以降低进程释放操作对前台应用的性能的影响。因为释放进程的过程需要由处理器调度完成,如果在不同场景下均采用固定的方式释放后台进程的话,在有些场景下,处理器的负载可能会由于释放进程的操作受到冲击,从而导致前台应用的性能受到影响。比如,若待释放进程比较多的话,同时释放这些进程可能会一下子让处理器的负载发生激增,导致处理器的响应速度变慢,前台应用的性能也因此会受到影响,如前台应用的帧率可能在短时间内会发生剧烈的波动,这将极大地影响用户的体验。
5、而在本技术提供的方案中,可以基于处理器的负载和/或前台应用的类型确定内存释放方式,因此便可以在一些前台应用的性能可能会受到释放进程操作影响的场景下,采用串行释放方式,基于串行释放方式可以逐个释放多个后台进程,这样比同时释放多个后台进程给处理器带来的负载压力要小得多,因此也不会对前台应用的性能造成太大的影响,提高用户的体验;而在一些前台应用的性能不易受到释放进程操作影响的场景下,可以采用并行释放方式,基于并行释放方式可以同时释放多个后台进程,从而可以缩短进程释放所占用的时间,使得系统能够尽快回收内存空间,提高系统的整体性能。
6、作为一个示例,该电子设备当前处于亮屏状态。
7、也就是说,在一种示例中,本技术实施例提供的进程释放方法,可以应用于亮屏场景中,此时,电子设备的显示屏正显示前台应用的界面,即用户正在使用前台应用,这个时候可以采用本技术实施例提供的方案,降低进程释放操作对前台应用的性能产生的影响,这样便可以尽量不影响用户使用前台应用的体验。
8、在息屏状态下,如果也要执行进行释放操作的话,可以使用本技术提供的方案,也可以不使用本技术提供的方案,例如,在息屏状态下,可以采用固定的内存释放方式(如并行释放方式)来释放后台进程,这样便不需要获取上述负载和/或前台应用的类型等信息,也不需要确定内存释放方式的流程,从而可以减少资源消耗,提高进程释放的效率。
9、作为一个示例,在确定的内存释放方式为串行释放方式的情况下,根据内存释放方式释放电子设备中的多个后台进程,包括:在同一个内存释放代理进程中逐个释放多个后台进程。
10、基于上述方案,在串行释放多个后台进程时,可以将所有待释放的后台进程在同一个内存释放代理进程中进行释放,例如,将该多个后台进程放入队列中,在一个内存释放代理进程中逐个释放。由于一个代理进程一次只能释放一个进程,所以这多个后台进程的释放时间不会重叠,因此这种实现方式不需要繁琐的时序控制便可以完成串行释放进程的操作,可以提高进程释放的效率。
11、作为一个示例,在同一个内存释放代理进程中逐个释放多个后台进程之前,该方法还包括:唤醒处于休眠状态的内存释放代理进程,内存释放代理进程为预先建立的进程。
12、基于上述方案,在一个内存释放代理进程中串行释放多个后台进程的场景下,可以预先建立内存释放代理进程,并使该内存释放代理进程进入休眠状态,在确定进行串行释放后,唤醒处于休眠状态的该内存释放代理进程,然后在该内存释放代理进程中依次释放该多个后台进程,通过这种方式,可以直接唤醒并使用该内存释放代理进程,提高进程释放的效率。
13、作为一个示例,在同一个内存释放代理进程中逐个释放多个后台进程之前,该方法还包括:创建内存释放代理进程。
14、基于上述方案,在一个内存释放代理进程中串行释放多个后台进程的场景下,可以在确定进行串行释放的情况下,临时创建该内存释放代理进程,创建完成之后再在该内存释放代理进程中依次释放该多个后台进程,在释放完成之后,可以清除该内存释放代理进程。通过这种方式,可以不需要一直维护该内存释放代理进程,从而减少内存占用。
15、作为一个示例,处理器为多核处理器,方法还包括:将内存释放代理进程绑定到处理器的小核或中核。
16、示例性地,对于多核处理器来说,大核的主频率能力最强,通常会用来处理比较高性能要求的任务,如果将内存释放代理进程绑定到处理器的大核的话,会有较高的概率对大核的负载造成冲击,而如果将内存释放代理进程绑定到处理器的小核或中核,可以尽可能减小进程释放操作对处理器负载的冲击,从而减小对前台应用的性能的影响。
17、作为一个示例,在确定的内存释放方式为串行释放方式的情况下,根据内存释放方式释放电子设备中的多个后台进程,包括:根据预设规则,按顺序逐个释放多个后台进程。
18、作为一个示例,预设规则包括:按照占用负载从大到小的顺序,依次释放多个后台进程。
19、在上述方案中,可以按照占用负载从大到小的顺序,依次释放该多个后台进程。也就是说,先释放占用负载大的后台进程,再释放占用负载小的后台进程。通过优先释放负载大的进程,可以尽快减轻系统负载,提高系统性能。
20、作为一个示例,预设规则包括:按照多个后台进程对应应用的使用频率从低到高的顺序,依次释放多个后台进程。
21、在上述方案中,按照该多个后台进程对应应用的使用频率从低到高的顺序,依次释放该多个后台进程。也就是说,先释放使用频率低的应用的进程,再释放使用频率高的应用的进程。通过优先释放使用频率低的应用的进程,可以尽量保留用户使用频率高的应用的进程,这样用户在重新打开这些保留的进程的应用的话,可以提高应用加载速度。
22、作为一个示例,根据处理器的负载确定内存释放方式,包括:若处理器的负载大于或等于预设阈值,则确定内存释放方式为串行释放方式。
23、示例性地,若处理器的负载大于或等于预设阈值,说明处理器的负载比较大,而释放进程的过程需要由处理器进行调度,所以此时若按照并行释放方式释放后台进程的话,可能会对处理器的负载造成冲击,比如要清理的后台进程比较多的话,同时清理这些后台进程会导致处理器性能进一步下降,前台应用的性能也因此会受到影响。而通过串行释放方式释放后台进程可以降低释放进程对处理器性能的影响,因为将后台进程逐个进行释放比同时释放多个后台进程给处理器带来的负载压力要小得多。
24、作为一个示例,根据处理器的负载确定内存释放方式,包括:若处理器的负载小于预设阈值,则确定内存释放方式为并行释放方式。
25、示例性地,若处理器的负载小于预设阈值,则说明处理器的负载比较小,所以此时即使使用并行释放方式来释放后台进程,也不会造成处理器过载,同时,采用并行释放方式而非串行释放方式可以缩短进程释放所占用的时间,使得系统能够尽快回收内存空间,提高系统的整体性能。
26、作为一个示例,根据前台应用的类型确定内存释放方式,包括:若前台应用是负载敏感型应用,则确定内存释放方式为串行释放方式。
27、其中,该负载敏感型应用的性能受处理器的负载影响的程度高于预设等级。
28、示例性地,若前台应用是负载敏感型应用,则说明前台应用的性能容易受到负载变化的影响,如果此时采用并行释放方式释放后台进程的话,可能会使得处理器负载变大,从而进一步影响前台应用的性能,比如使得前台应用出现丢帧的情况。而通过串行释放方式释放后台进程可以降低释放进程对处理性负载的影响,进一步也可以减少前台应用的性能受到的影响,尽量保持前台应用的稳定运行。
29、作为一个示例,根据前台应用的类型确定内存释放方式,包括:若前台应用不是负载敏感型应用,则确定内存释放方式为并行释放方式。
30、其中,负载敏感型应用的性能受负载影响的程度高于预设等级。
31、示例性地,若前台应用不是负载敏感型应用(如相册应用、金融类应用等),则说明前台应用的性能不容易受到负载变化的影响,此时即使采用并行释放方式释放后台进程导致处理器负载变大,也基本不会影响前台应用的性能。同时,采用并行释放方式而非串行释放方式还可以缩短进程释放所占用的时间,使得系统能够尽快回收内存空间,提高系统的整体性能。
32、作为一个示例,根据处理器的负载和前台应用的类型确定内存释放方式,包括:若处理器的负载小于预设阈值,且前台应用是负载敏感型应用,则确定内存释放方式为串行释放方式。
33、其中,负载敏感型应用的性能受负载影响的程度高于预设等级。
34、例如,若该处理器的负载小于预设阈值,且该前台应用是负载敏感型应用,则确定该内存释放方式为该串行释放方式。具体来说,若处理器的负载小于预设阈值,说明处理器的负载比较小,但由于前台应用是负载敏感型应用,如果采用并行释放方式释放后台进程的话,即使处理器当前负载比较小,也可能会受到进程释放操作的影响导致负载增大,从而可能会影响到前台应用的性能,因此可以采用串行释放方式释放后台进程以降低进程释放对处理器负载的影响,从而降低对前台应用性能的影响。
35、作为一个示例,根据处理器的负载和前台应用的类型确定内存释放方式,包括:若处理器的负载小于预设阈值,且前台应用不是负载敏感型应用,则确定内存释放方式为并行释放方式。
36、其中,负载敏感型应用的性能受负载影响的程度高于预设等级。
37、示例性地,若处理器的负载小于预设阈值,则说明处理器的负载比较小,所以即使采用并行释放方式释放后台进程导致负载增大,也不至于导致处理器过载,并且由于前台应用不是负载敏感型应用,所以即使负载增大也基本不会影响到前台应用的性能,同时还可以提高内存回收的效率,提高系统整体新能。
38、作为一个示例,根据处理器的负载和前台应用的类型确定内存释放方式,包括:若处理器的负载大于或等于预设阈值,且前台应用是负载敏感型应用或前台应用不是负载敏感型应用,则确定内存释放方式为串行释放方式。
39、其中,负载敏感型应用的性能受负载影响的程度高于预设等级。
40、示例性地,若处理器的负载大于或等于预设阈值,说明处理器的负载比较大,此时若按照并行释放方式释放后台进程的话,可能会对处理器的负载造成冲击,导致处理器过载,从而影响前台应用的性能。而通过串行释放方式释放后台进程可以降低释放进程对处理器性能的影响。
41、作为一个示例,该方法还包括:若前台应用为媒体类应用,则确定前台应用为负载敏感型应用,媒体类应用是用于拍摄图片的应用,或是用于拍摄或显示视频画面的应用。
42、基于上述方案,可以基于前台应用的类型确定前台应用是否为负载敏感型应用,从而可以进一步根据判断结果确定要采用的内存释放方式。具体地,可以预先配置负载敏感型应用的类型,例如,可以将媒体类应用设置为负载敏感型应用,该媒体类应用是用于拍摄图片的应用(如相机应用),或用于拍摄或显示视频画面的应用(如录像应用、游戏应用、视频应用、直播应用等)。因此在确定内存释放方式之前,可以先判断前台应用的类型,若前台应用的类型为媒体类应用,则确定该前台应用为负载敏感型应用。
43、作为一个示例,方法还包括:通过前台应用的接口读取前台应用的分类信息;基于分类信息确定前台应用的类型。
44、示例性地,电子设备可以通过前台应用的接口读取该前台应用的分类信息,然后基于该分类信息确定前台应用的类型。这里的分类信息指的是基于预设分类规则确定的用于指示该前台应用的类型的信息,该分类信息所指示的前台应用的类型例如是以下任意一种或多种:游戏、视频、音乐、社交、摄像摄影、金融等。
45、作为一个示例,在根据所述电子设备中处理器的负载和/或前台应用的类型确定内存释放方式之前,该方法还包括:确定释放多个后台进程。
46、第二方面,提供了一种进程释放方法及电子设备,该方法应用于电子设备,或者应用于电子设备中的处理器或其他模块,该方法包括:根据电子设备中处理器的负载和/或前台应用的负载敏感度确定内存释放方式,该前台应用的负载敏感度用于指示前台应用的性能受处理器负载影响的程度,该内存释放方式包括并行释放方式或串行释放方式;根据内存释放方式释放电子设备中的多个后台进程。
47、第三方面,提供了一种电子设备,该电子设备包括内存释放方式决策模块,用于根据所述电子设备中处理器的负载和/或前台应用的类型确定内存释放方式,所述内存释放方式包括串行释放方式或并行释放方式。
48、内存释放控制模块,用于根据所述内存释放方式释放所述电子设备中的多个后台进程。
49、作为一种示例,该电子设备还包括策略通知模块,用于接收来自内存释放方式决策模块的内存释放方式,以及将该内存释放方式发送给内存释放控制模块。
50、第四方面,提供了一种电子设备,包括存储器、处理器,该存储器上存储有可在所述处理器上运行的计算机程序,所述处理器执行所述计算机程序时,使得电子设备实现如上述第一方面中任一项所述应用显示方法的步骤。
51、第五方面,提供了一种计算机可读存储介质,该计算机可读存储介质存储有计算机程序,该计算机程序被处理器执行时,实现如上述第一方面中任一项所述应用显示方法的步骤。
52、第六方面,提供了一种计算机程序产品,当计算机程序产品在电子设备上运行时,使得电子设备执行上述第一方面中任一项所述应用显示方法。
53、第七方面,提供了一种芯片系统,该芯片系统包括处理器,该处理器与存储器耦合,该处理器执行存储器中存储的计算机程序,以实现上述第一方面任一项所述的应用显示方法。
54、其中,芯片系统可以是单个芯片或者,多个芯片组成的芯片模组。
55、可以理解的是,上述第二方面至第七方面的有益效果可以参见上述第一方面中的相关描述,在此不再赘述。