一种终端内存优化的方法、装置及系统制造方法及图纸

技术编号:14662718 阅读:86 留言:0更新日期:2017-02-17 10:00
本发明专利技术提供了一种终端内存优化的方法、装置及系统,其中,该终端内存优化的方法包括:获取当前终端的操作系统运行的可用内存的大小;根据所述可用内存的大小与预设的可用内存级别,对终端的操作系统运行的内存进行优化。本发明专利技术实施例的终端内存优化的方法、装置及系统,当系统内存出现不足状况时,通过随机方式,从当前警戒级别的后台进程中选择杀掉一部分,若被杀掉的后台进程中,有可重启进程,对重启时间也做随机化处理,避免后台进程被杀掉后又同时重启,缓解了内存不足对系统性能的影响。

【技术实现步骤摘要】

本专利技术涉及电子设备领域,主要涉及一种终端内存优化的方法、装置及系统
技术介绍
熟知的,安卓Android系统内存不足是一种持续过载的系统状态,此时进程对系统内存资源的需求超过了其固有的容量。就Android系统结构而言,内存不足的发生是其固有的属性。因为在事先没有任何协商和请求许可机制的内存资源共享结构中,多个进程同时请求系统内存的可能性必然存在,但所有进程的内存请求不可能同时得到满足。如果进程请求的内存量超过系统释放的内存量,此状况持续一定的时间,内存占用量必定超过一定门限或被耗尽。为了缓解系统内存不足问题,安卓操作系统内核AndroidKernel会定时执行一次检查,杀死一些进程,释放内存,判断进程是否需要杀死的机制是低内存管理工具LowMemoryKiller(LMK),LMK主要是通过进程的oom_adj来判定进程的重要程度。oom_adj值越小,程序越重要,被杀的可能性越低。oom_adj的大小和进程的类型以及进程被调度的次序有关。如:Android系统定义各种进程的oom_adj,例如,CORE_SERVER_ADJ代表一些核心的服务的oom_adj,数值为-12,这类进程永远也不会被杀掉。而EMPTY_APP_ADJ代表空应用的,oom_adj,数值为15,这类进程最优先被杀掉。此外,在LMK中,定义了两个数组,表示当系统内存低于某一值,就在低于某一警戒级别的线程中,选择一占用内存最大的进程,然后杀死该进程,以释放其占用的内存。lowmem_adj中各项数值代表阈值的警戒级别,lowmem_minfree代表对应级数的可用内存。LMK开始工作时,首先根据阈值表确定当前的警戒级别,则oom_adj高于警戒级别的进程是待杀的范围。然后遍历所有进程的oom_adj值,找到大于min_adj的进程,若找到多个,则发送SIGKILL信号,杀掉占用内存最大的进程。目前,Android系统中有多种实现进程重启的方法,如在service的onStartCommand方法中返回START_STICKY等,这类进程重启会严重影响系统,这也是当系统内存较少时,系统运行变慢的原因之一。在内存剩余不多时,LMK在杀掉后台进程时会触发系统自身的进程调度策略,但这却是十分消耗系统资源的操作,特别是在当进程反复重启,并频繁向系统申请内存时,严重导致系统整体性能下降。进一步,需要指的是系统内存占用量与系统响应速度之间的关系,如图1所示,当内存占用量较小时,系统或应用响应延迟与内存占用量之间呈线性关系,延迟增长缓慢;负载超过崖点之后,随统内存占用量的增加,吞吐量的增量逐渐趋缓,延迟增长较快;当负载越过崖点之后,由于LMK频繁杀掉后台进程,以及后台进程重启,导致响应延迟急剧上升。由此可以看出,系统内存和其它资源在崖点之前使用效率最高,崖点之后是内存崩溃区间。系统内存工作在轻度负载状态时应该是较为理想的,可以最大限度地利用资源,但这也增加了滑向内存控制崩溃的可能性,急待需要对内存负载加以约束和限制。
技术实现思路
本专利技术的目的是提供一种终端内存优化的方法、装置及系统,在内存不足状况达到十分严重的程度之前以随机方式杀掉系统后台的进程,并以随机重启时间重启被杀掉的进程,从而缓解内存不足对系统性能的影响。为了解决上述问题,本专利技术提供了一种终端内存优化的方法,包括:获取当前终端的操作系统运行的可用内存的大小;根据所述可用内存的大小与预设的可用内存级别,对终端的操作系统运行的内存进行优化。其中,获取当前终端的操作系统运行的可用内存的大小的步骤包括:通过低内存管理工具获取所述当前终端的操作系统运行的可用内存的大小。其中,根据所述可用内存的大小与预设的可用内存级别,对终端的操作系统运行的内存进行优化的步骤包括:若所述可用内存的大小小于所述预设的可用内存级别的最小级别,则杀掉所述当前系统内警戒级别最低的进程;若所述可用内存的大小位于所述预设可用内存级别中第I级别和第I+1级别之间,则随机杀掉所述当前系统内的进程。其中,若所述可用内存的大小位于所述预设可用内存级别中第I级别和第I+1级别之间,则随机杀掉所述当前系统内的进程的步骤包括:获取0至1之间的伪随机数P1,以及随机杀掉所述当前系统内进程的概率P2;比较所述伪随机数P1与概率P2的值的大小,若所述伪随机数P1的值大于所述概率P2的值,则杀掉所述当前系统内进程中警戒级别为I的进程。其中,若所述伪随机数P1的值大于所述概率P2的值,则杀掉所述当前系统内进程中警戒级别为I的进程后,所述方法还包括:过一预设时间后重启所述随机被杀掉的警戒级别为I的进程,其中,重启所述随机被杀掉的警戒级别为I的进程的概率为P2。其中,获取随机杀掉所述当前系统内进程的概率P2的步骤包括:采用如下计算公式:获取所述概率P2的值;其中,所述freemem为所述当前终端的操作系统运行的可用内存的大小,lowmem_minfree[i]为预设的可用内存级别数组。其中,所述预设时间为伪随机数P3,其中,所述伪随机数P3为0至自定义重新启动时间restarttime之间的伪随机数。此外,本专利技术还提供了一种终端内存优化的装置,包括:获取模块,用于获取当前终端的操作系统运行的可用内存的大小;优化模块,用于根据所述可用内存的大小与预设的可用内存级别,对终端的操作系统运行的内存进行优化。其中,所述获取模块具体用于:通过低内存管理工具获取所述当前终端的操作系统运行的可用内存的大小。其中,所述优化模块具体用于:若所述可用内存的大小小于所述预设的可用内存级别的最小级别,则杀掉所述当前系统内警戒级别最低的进程;若所述可用内存的大小位于所述预设可用内存级别中第I级别和第I+1级别之间,则随机杀掉所述当前系统内的进程。其中,若所述可用内存的大小位于所述预设可用内存级别中第I级别和第I+1级别之间,则随机杀掉所述当前系统内的进程的步骤包括:获取0至1之间的伪随机数P1,以及随机杀掉所述当前系统内进程的概率P2;比较所述伪随机数P1与概率P2的值的大小,若所述伪随机数P1的值大于所述概率P2的值,则杀掉所述当前系统内进程中警戒级别为I的进程。其中,若所述伪随机数P1的值大于所述概率P2的值,则杀掉所述当前系统内进程中警戒级别为I的进程后,所述方法还包括:过一预设时间后重启所述随机被杀掉的警戒级别为I的进程,其中,重启所述随机被杀掉的警戒级别为I的进程的概率为P2。其中,获取随机杀掉所述当前系统内进程的概率P2的步骤包括:采用如下计算公式:获取所述概率P2的值;其中,所述freemem为所述当前终端的操作系统运行的可用内存的大小,lowmem_minfree[i]为预设的可用内存级别数组。其中,所述预设时间为伪随机数P3,其中,所述伪随机数P3为0至自定义重新启动时间restarttime之间的伪随机数。最后,本专利技术还提供了一种系统,包括上述的终端内存优化的装置。本专利技术的上述技术方案的有益效果如下:上述方案中,通过监控系统的可用内存空间来评估系统内存控制程度,一旦发现内存不足,则从当前警戒级别的后台进程中随机选择杀掉一部分进程。若被杀掉的后台进程中,有可重启进程,对重启时间也做随机化处理,避免后台进程被杀掉后又同时重启,缓解内本文档来自技高网
...
一种终端内存优化的方法、装置及系统

【技术保护点】
一种终端内存优化的方法,其特征在于,包括:获取当前终端的操作系统运行的可用内存的大小;根据所述可用内存的大小与预设的可用内存级别,对终端的操作系统运行的内存进行优化。

【技术特征摘要】
1.一种终端内存优化的方法,其特征在于,包括:获取当前终端的操作系统运行的可用内存的大小;根据所述可用内存的大小与预设的可用内存级别,对终端的操作系统运行的内存进行优化。2.根据权利要求1所述的终端内存优化的方法,其特征在于,获取当前终端的操作系统运行的可用内存的大小的步骤包括:通过低内存管理工具获取所述当前终端的操作系统运行的可用内存的大小。3.根据权利要求1所述的终端内存优化的方法,其特征在于,根据所述可用内存的大小与预设的可用内存级别,对终端的操作系统运行的内存进行优化的步骤包括:若所述可用内存的大小小于所述预设的可用内存级别的最小级别,则杀掉所述当前系统内警戒级别最低的进程;若所述可用内存的大小位于所述预设可用内存级别中第I级别和第I+1级别之间,则随机杀掉所述当前系统内的进程。4.根据权利要求3所述的终端内存优化的方法,其特征在于,若所述可用内存的大小位于所述预设可用内存级别中第I级别和第I+1级别之间,则随机杀掉所述当前系统内的进程的步骤包括:获取0至1之间的伪随机数P1,以及随机杀掉所述当前系统内进程的概率P2;比较所述伪随机数P1与概率P2的值的大小,若所述伪随机数P1的值大于所述概率P2的值,则杀掉所述当前系统内进程中警戒级别为I的进程。5.根据权利要求4所述的终端内存优化的方法,其特征在于,若所述伪随机数P1的值大于所述概率P2的值,则杀掉所述当前系统内进程中警戒级别为I的进程后,所述方法还包括:过一预设时间后重启所述随机被杀掉的警戒级别为I的进程,其中,重启所述随机被杀掉的警戒级别为I的进程的概率为P2。6.根据权利要求4所述的终端内存优化的方法,其特征在于,获取随机杀掉所述当前系统内进程的概率P2的步骤包括:采用如下计算公式:P2=freemem-lowmen_minfree[i]lowmen_minfree[i+1]-lowmen_minfree[i],]]>获取所述概率P2的值;其中,所述freemem为所述当前终端的操作系统运行的可用内存的大小,lowmem_minfree[i]为预设的可用内存级别数组。7.根据权利要求5所述的终端内存优化的方法,其特征在于,所述预设时间为伪随机数P3,其中,所述伪随机数P3为0至自定义重新启动时间restarttime之间的伪随机数。8.一种终端内...

【专利技术属性】
技术研发人员:汪岩梁超李建邺
申请(专利权)人:联想移动通信科技有限公司
类型:发明
国别省市:福建;35

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1