CN111880928A - 选择进程进行释放的方法、终端设备 - Google Patents
选择进程进行释放的方法、终端设备 Download PDFInfo
- Publication number
- CN111880928A CN111880928A CN202010642098.6A CN202010642098A CN111880928A CN 111880928 A CN111880928 A CN 111880928A CN 202010642098 A CN202010642098 A CN 202010642098A CN 111880928 A CN111880928 A CN 111880928A
- Authority
- CN
- China
- Prior art keywords
- memory
- occupied
- size
- total
- compression
- 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
- 238000000034 method Methods 0.000 title claims abstract description 441
- 230000008569 process Effects 0.000 title claims abstract description 408
- 230000015654 memory Effects 0.000 claims abstract description 333
- 230000006835 compression Effects 0.000 claims abstract description 95
- 238000007906 compression Methods 0.000 claims abstract description 95
- 238000012545 processing Methods 0.000 claims description 14
- 238000005516 engineering process Methods 0.000 claims description 6
- 230000006870 function Effects 0.000 description 19
- 238000010586 diagram Methods 0.000 description 15
- 238000004891 communication Methods 0.000 description 6
- 238000004590 computer program Methods 0.000 description 6
- 230000001413 cellular effect Effects 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
- 238000007726 management method Methods 0.000 description 3
- 238000005192 partition Methods 0.000 description 3
- 238000011084 recovery Methods 0.000 description 3
- 230000005540 biological transmission Effects 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 238000001514 detection method Methods 0.000 description 2
- 239000011521 glass Substances 0.000 description 2
- 230000003993 interaction Effects 0.000 description 2
- 230000003287 optical effect Effects 0.000 description 2
- 238000012163 sequencing technique Methods 0.000 description 2
- 239000007787 solid Substances 0.000 description 2
- 230000005236 sound signal Effects 0.000 description 2
- 230000001133 acceleration Effects 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 238000013500 data storage Methods 0.000 description 1
- 238000007599 discharging Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000005484 gravity Effects 0.000 description 1
- 239000004973 liquid crystal related substance Substances 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 230000000737 periodic effect Effects 0.000 description 1
- 238000010079 rubber tapping Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 238000010897 surface acoustic wave method Methods 0.000 description 1
- 230000026676 system process Effects 0.000 description 1
- 230000000007 visual effect Effects 0.000 description 1
- 210000000707 wrist Anatomy 0.000 description 1
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/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5022—Mechanisms to release resources
-
- 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/5011—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
- G06F9/5016—Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
Landscapes
- Engineering & Computer Science (AREA)
- Software Systems (AREA)
- Theoretical Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Memory System (AREA)
- Telephone Function (AREA)
Abstract
本发明实施例公开了一种选择进程进行释放的方法、终端设备以及计算机可读存储介质,用于在终端设备的剩余内存小于预置内存阈值的情况下,选择进程释放时,除了考虑到各个进程的内存占用大小,还考虑到了各个进程的压缩后空间占用大小,所以,在选择进程进行释放时,结果相对现有技术来说,更准确一些。本发明实施例方法包括:在终端设备的剩余内存小于预置内存阈值的情况下,获取各个进程的压缩后空间占用大小以及内存占用大小;根据所述各个进程的压缩后空间占用大小以及内存占用大小,计算得到所述各个进程的占用总内存;根据所述各个进程的占用总内存,选择进程进行释放。
Description
技术领域
本发明涉及信息技术领域,尤其涉及一种选择进程进行释放的方法、终端设备以及计算机可读存储介质。
背景技术
因为终端设备的内存空间有限,在使用一段时间后,后台会积累较多的进程,而这些进程也会占用一定的内存空间。如果终端设备的***内存紧张,会进行内存回收。在内存回收时,如果***剩余内存低于预置内存阈值,会启动安卓低内存杀手(Android LowMemory Killer)选择进程来杀,以释放出更多内存。其中,现有安卓(Android)终端设备大多使用内存压缩(ZRAM或ZSMALLOC)作为交换区(SWAP)空间,也就是在内存回收时会将最近最少使用(Least Recently Used,LRU)的匿名页压缩到SWAP空间中。
但在现有技术中,低内存杀手(Low Memory Killer,LMK)计算进程内存占用的方法只是考虑各个进程的内存占用大小,而没有考虑到各个进程的压缩后空间占用大小,所以导致计算的结果不够准确。
发明内容
本发明实施例提供了一种选择进程进行释放的方法、终端设备以及计算机可读存储介质,用于在终端设备的剩余内存小于预置内存阈值的情况下,选择进程释放时,除了考虑到各个进程的内存占用大小,还考虑到了各个进程的压缩后空间占用大小,所以,在选择进程进行释放时,结果相对现有技术来说,更准确一些。
有鉴于此,本发明实施例第一方面提供了一种选择进程进行释放的方法,可以包括:
在终端设备的剩余内存小于预置内存阈值的情况下,获取各个进程的压缩后空间占用大小以及内存占用大小;
根据所述各个进程的压缩后空间占用大小以及内存占用大小,计算得到所述各个进程的占用总内存;
根据所述各个进程的占用总内存,选择进程进行释放。
本发明实施例第二方面提供了一种终端设备,可以包括:
获取模块,用于在终端设备的剩余内存小于预置内存阈值的情况下,获取各个进程的压缩后空间占用大小以及内存占用大小;
处理模块,用于根据所述各个进程的压缩后空间占用大小以及内存占用大小,计算得到所述各个进程的占用总内存;根据所述各个进程的占用总内存,选择进程进行释放。
本发明实施例第三方面提供了一种终端设备,可以包括:
存储有可执行程序代码的存储器;
以及所述存储器耦合的处理器;
所述处理器调用所述存储器中存储的所述可执行程序代码,用于执行如本发明实施例第一方面所述的方法。
本发明实施例第四方面提供一种计算机可读存储介质,其上存储有计算机程序,所述计算机程序被处理器执行时实现如本发明实施例第一方面所述的方法。
本发明实施例第五方面公开一种计算机程序产品,当所述计算机程序产品在计算机上运行时,使得所述计算机执行本发明实施例第一方面所述的方法。
本发明实施例第六方面公开一种应用发布平台,所述应用发布平台用于发布计算机程序产品,其中,当所述计算机程序产品在计算机上运行时,使得所述计算机执行本发明实施例第一方面所述的方法。
从以上技术方案可以看出,本发明实施例具有以下优点:
在本发明实施例中,在终端设备的剩余内存小于预置内存阈值的情况下,终端设备可以获取各个进程的压缩后空间占用大小以及内存占用大小;再根据所述各个进程的压缩后空间占用大小以及内存占用大小,计算得到所述各个进程的占用总内存;然后根据所述各个进程的占用总内存,选择进程进行释放。即在终端设备的剩余内存小于预置内存阈值的情况下,选择进程释放时,除了考虑到各个进程的内存占用大小,还考虑到了各个进程的压缩后空间占用大小,所以,在选择进程进行释放时,结果相对现有技术来说,更准确一些。
附图说明
为了更清楚地说明本发明实施例技术方案,下面将对实施例和现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,还可以根据这些附图获得其它的附图。
图1为现有技术中***低内存的情况下LMK选择杀进程的一个示意图;
图2为本发明实施例中选择进程进行释放的方法的一个实施例示意图;
图3为本发明实施例中选择进程进行释放的方法的另一个实施例示意图;
图4为本发明实施例中选择进程进行释放的方法的另一个实施例示意图;
图5为本发明实施例中终端设备的一个实施例示意图;
图6为本发明实施例中终端设备的另一个实施例示意图。
具体实施方式
本发明实施例提供了一种选择进程进行释放的方法,用于在终端设备的剩余内存小于预置内存阈值的情况下,选择进程释放时,除了考虑到各个进程的内存占用大小,还考虑到了各个进程的压缩后空间占用大小,所以,在选择进程进行释放时,结果相对现有技术来说,更准确一些。
为了使本技术领域的人员更好地理解本发明方案,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行描述,显然,所描述的实施例仅仅是本发明一部分的实施例,而不是全部的实施例。基于本发明中的实施例,都应当属于本发明保护的范围。
下面先对本发明实施例中所涉及的术语做一个简要的说明,如下所示:
LMK:Low Memory Killer,低内存杀手,是Android linux在低内存时按一定策略杀进程释放内存的管理机制。
匿名页:Anonymous Page,没有文件背景的页面,如堆、栈、数据段等,不以文件形式存在。
SWAP:也称交换区,磁盘上的一块区域,当***物理内存紧张时,内核会将内存中不常访问的数据换出到SWAP分区上,这样***就有更多的物理内存为各个进程服务,而当***需要访问这些数据时,再将SWAP上的数据加载到内存中。
ZRAM:压缩过的内存,压缩后仍然存放于随机存取存储器(Random AccessMemory,RAM),Android终端设备常用ZRAM虚拟为一个SWAP设备,相当于并不是真正交换到磁盘,只是压缩后存放在RAM中。例如一个应用内存占用150M,经内存压缩后只占50M。
ZSWAP:ZSWAP是在内存(Memory)与闪存(Flash)之间的一层“存储器(Cache)”,当内存需要SWAP出去磁盘的时候,先通过压缩放到ZSWAP中去,ZSWAP的空间按需增长。达到一定程度后则会按照最近最少使用(Least Recently Used,LRU)的顺序将就最旧的页(Page)解压写入磁盘交换设备(Swap Device),之后将当前的Page压缩写入交换存储器(ZswapCache)。如果没有实际的磁盘Swap Device,与ZRAM是类似的。
Cache:是在中央处理器(Central Processing Unit,CPU)中速度非常块,而容量却很小的一种存储器,它是计算机存储器中最强悍的存储器。由于技术限制,容量很难提升,一般都不过兆(MB)。
adj:用于表示进程优先级,范围是-1000~1000,数值越大,表示进程优先级越低,adj小于0的进程是***进程,adj为0的进程是前台应用进程。
在一种实现方式中,当终端设备处于工作状态时,终端设备的***内存可分为使用内存和剩余内存,在终端设备的剩余内存大于等于第一预置内存阈值的情况下,或者,在使用内存小于等于第二预置内存阈值的情况下,说明当前剩余内存大小处于相对比较宽裕的状态,不需要通过回收进程来回收内存,所以,不需要对进程进行释放处理。但是,在终端设备的剩余内存小于第一预置内存阈值的情况下,或者,在使用内存大于第二预置内存阈值的情况下,会使得***重新启动加载程序的过程比较慢,影响用户体验,甚至引起因终端设备***占用内存不足而导致***死机或重启的情况发生。
而终端设备中内核一般的原则是不到万不得已,尽量不杀或少杀进程,因为进程被清理后如果应用再次被使用到,需要重新启动加载,重新加载过程比较慢,也会影响用户体验。但如果因内存紧张而较难回收时,需要及时杀进程,而且可能要更积极地杀进程以释放内存。
目前Android Low Memory Killer选择杀进程的策略是使用内存小于不同的预置内存阈值,可以选择杀的进程优先级(使用adj表示,-1000~1000,越大表示优先级越低)范围不同,示例性的,对应关系如表1所示:
adj | 0 | 100 | 200 | 300 | 900 | 906 |
阈值Minfree | 70MB | 90MB | 100MB | 120MB | 220MB | 320MB |
表1
结合表1进行说明:
当***可用内存小于320MB,选优先级adj为906以上的进程来杀,adj越大,越容易被杀;
当***可用内存小于220MB,选优先级adj为900以上的进程来杀,adj越大,越容易被杀;
当***可用内存小于120MB,选优先级adj为300以上的进程来杀,adj越大,越容易被杀;
当***可用内存小于100MB,选优先级adj为200以上的进程来杀,adj越大,越容易被杀;
当***可用内存小于90MB,选优先级adj为100以上的进程来杀,adj越大,越容易被杀;
当***可用内存小于70MB,选优先级adj为0以上的进程来杀,adj越大,越容易被杀。
示例性的,如图1所示,为现有技术中***低内存的情况下,LMK选择杀进程的一个示意图。在图1所示中,***可用内存可以包括空闲内存(可用图1中的free表示),和/或,缓存(可用图1中的file表示)。
可以理解的是,本发明实施例中所涉及的终端设备可以包括一般的手持电子终端,诸如手机、智能电话、便携式终端、终端、个人数字助理(Personal Digital Assistant,PDA)、便携式多媒体播放器(Personal Media Player,PMP)装置、笔记本电脑、笔记本(NotePad)、无线宽带(Wireless Broadband,Wibro)终端、平板电脑(personal computer,PC)、智能PC、销售终端(Point of Sales,POS)和车载电脑等。
终端设备也可以包括可穿戴设备。可穿戴设备即可以直接穿戴在用户身上,或是整合到用户的衣服或配件的一种便携式电子设备。可穿戴设备不仅仅是一种硬件设备,更可以通过软件支持以及数据交互、云端交互来实现强大的智能功能,比如:计算功能、定位功能、报警功能,同时还可以连接手机及各类终端。可穿戴设备可以包括但不限于以手腕为支撑的watch类(比如手表、手腕等产品),以脚为支撑的shoes类(比如鞋、袜子或者其他腿上佩戴产品),以头部为支撑的Glass类(比如眼镜、头盔、头带等)以及智能服装,书包、拐杖、配饰等各类非主流产品形态。
下面以实施例的方式,对本发明技术方案做进一步的说明,如图2所示,为本发明实施例中选择进程进行释放的方法的一个实施例示意图,可以包括:
201、在终端设备的剩余内存小于预置内存阈值的情况下,获取各个进程的压缩后空间占用大小以及内存占用大小。
本发明实施例中,在终端设备的剩余内存小于第一预置内存阈值的情况下,或者,在使用内存大于第二预置内存阈值的情况下,终端设备获取各个进程的压缩后空间占用大小以及内存占用大小。
可选的,终端设备获取各个进程的压缩后空间占用大小,可以包括:所述终端设备使用内存压缩技术的情况下,终端设备获取各个进程的压缩后空间占用大小。示例性的,终端设备可以判断是否使用SWAP分区,若使用,终端设备可以获取各个进程的压缩后空间占用大小以及内存占用大小,具体获取的过程可以参考下文的说明,再去计算得到所述各个进程的占用总内存。若未使用,那么,终端设备可以获取各个进程的内存占用大小。如图3所示,为本发明实施例中选择进程进行释放的方法的另一个实施例示意图。
可选的,在终端设备的剩余内存小于第一预置内存阈值的情况下,若所述终端设备满足预设条件,则终端设备获取各个进程的压缩后空间占用大小以及内存占用大小;所述预设条件可以包括所述终端设备的当前温度小于预置温度阈值,和/或,所述终端设备的剩余电量大于预置电量阈值。
示例性的,终端设备的预置电量阈值为70%,当剩余电量大于等于预置电量阈值70%的时候,那么,终端设备可以获取各个进程的压缩后空间占用大小以及内存占用大小。
可选的,各个进程的内存占用大小可以包括:各个进程的匿名页大小。
可选的,终端设备获取各个进程的压缩后空间占用大小,可以包括:获取所述各个进程的压缩前空间占用大小;通过计算所述各个进程的压缩前空间占用大小和压缩率的乘积,得到所述各个进程的压缩后空间占用大小;
其中,所述压缩率为当前***中压缩后空间占用大小与所述当前***中压缩前空间占用大小之比。示例性的,当前***从运行开始到当前时间,当前***中压缩后空间占用大小为50MB,当前***中压缩前空间占用大小为300MB,压缩率可以为当前***中压缩后空间占用大小与所述当前***中压缩前空间占用大小之比,即50/300=1/6。
或,所述压缩率为在预置时长内,所述当前***中压缩后空间占用大小与所述当前***中压缩前空间占用大小之比。示例性的,以预置时长为一周时间为例进行说明,这一周时间可以是距离当前时间最近的一周时间,也可以是上一星期的时间,具体不做限定。假设,终端设备在上述一周时间的终止时刻时获取的压缩后空间占用大小为30MB,在上述一周时间终止时刻时获取的压缩前空间占用大小为300MB,那么,压缩率为30/300=1/10。
或,所述压缩率为预置的。
可以理解的是,终端设备保存有各个进程的内存占用大小、压缩前空间占用大小和压缩后空间占用大小的信息。在达到一定的条件时,终端设备可以获取这些信息。
可选的,各个进程的压缩前空间占用大小可以理解为各个进程最近最少使用的匿名页大小。
可选的,各个进程的压缩后空间占用大小可以保存在压缩空间。示例性的,该压缩空间可以为SWAP分区。
需要说明的是,各个进程的压缩后空间占用大小,也可以称为各个进程的换出压缩空间部分占用内存大小。
可选的,终端设备获取各个进程的压缩后空间占用大小以及内存占用大小的时序不做限定。即可以先获取各个进程的压缩后空间占用大小,再获取各个进程的内存占用大小;也可以先获取各个进程的内存占用大小,再获取各个进程的压缩后空间占用大小;或者,也可以同时获取各个进程的压缩后空间占用大小以及内存占用大小。
可选的,终端设备获取各个进程的压缩后空间占用大小以及内存占用大小,可以是实时的,也可以是周期性的,具体此处不做限定。
可以理解的是,终端设备的***为Android***。
202、根据所述各个进程的压缩后空间占用大小以及内存占用大小,计算得到所述各个进程的占用总内存。
终端设备根据所述各个进程的压缩后空间占用大小以及内存占用大小,计算得到所述各个进程的占用总内存,可以包括:终端设备对所述各个进程的压缩后空间占用大小以及内存占用大小求和,计算得到所述各个进程的占用总内存。
可以理解的是,本发明实施例中的压缩率可以是ZRAM压缩率,也可以ZSWAP压缩率。示例性的,如表2所示,包括两个进程的内存占用大小、压缩前空间占用大小、ZRAM压缩率以及压缩后空间占用大小的信息。
表2
结合表2,对终端设备计算各个进程的占用总内存进行说明,如下所示:
进程A的内存占用大小为200MB,压缩前空间占用大小为30MB,ZRAM压缩率为1/3,压缩后空间占用大小为压缩前空间占用大小与ZRAM压缩率的乘积,即30*1/3=10MB;此时进程A的占用总内存为其压缩后空间占用大小以及内存占用大小之和,即200MB+10MB=210MB。
进程B的内存占用大小为180MB,压缩前空间占用大小为300MB,ZRAM压缩率为1/3,压缩后空间占用大小为压缩前空间占用大小与ZRAM压缩率的乘积,即300*1/3=100MB;此时进程B的占用总内存为其压缩后空间占用大小以及内存占用大小之和,即180MB+100MB=280MB。
203、根据所述各个进程的占用总内存,选择进程进行释放。
终端设备根据所述各个进程的占用总内存,选择进程进行释放,可以包括:终端设备根据所述各个进程的占用总内存,选择占用总内存最大的前N个进程进行释放,所述N为大于等于1的整数。
示例性的,一个使用ZRAM或ZSWAP的Android终端设备运行的7个进程及其占用总内存大小,如表3所示:
进程 | A | B | C | D | E | F | G |
占用总内存 | 210MB | 230MB | 140MB | 310MB | 180MB | 50MB | 240MB |
表3
结合表3进行说明,终端设备对各个进程占用总内存大小进行从大到小排序,即进程D>进程G>进程B>进程A>进程E>进程C>进程F。假设,终端设备根据所述各个进程的占用总内存,选择占用总内存最大的前3个进程进行释放,那么,这里终端设备就选择进程D、进程G和进程B进行释放。
可选的,终端设备根据所述各个进程的占用总内存,所述选择占用总内存最大的前N个进程进行释放,可以包括:终端设备根据所述各个进程的占用总内存,选择占用总内存最大的进程进行释放。示例性的,这里结合上述表3进行说明,终端设备选择进程D进行释放。
可选的,终端设备根据所述各个进程的占用总内存,选择占用总内存最大的前N个进程进行释放,可以包括但不限于以下的实现方式:
(1)在所述各个进程存在优先级相同的情况下,终端设备根据所述各个进程的占用总内存,选择占用总内存最大的前N个进程进行释放。
示例性的,一个使用ZRAM或ZSWAP的Android终端设备运行的7个进程占用总内存及其对应优先级,如表4所示:
adj | 300 | 900 | 300 | 900 | 300 | 0 | 900 |
进程 | A | B | C | D | E | F | G |
占用总内存 | 210MB | 230MB | 140MB | 310MB | 180MB | 50MB | 240MB |
表4
结合表4进行说明,终端设备分别对不同优先级对应的进程占用总内存大小进行从大到小排序,当adj为0时,只有进程F,不存在排序的问题;当adj为300时,进程A>进程E>进程C;当adj为900时,进程D>进程G>进程B。
在所述各个进程存在优先级相同的情况下,假设,终端设备根据所述各个进程的占用总内存,选择占用总内存最大的前2个进程进行释放,那么,当adj为0时,终端设备选择进程F进行释放;当adj为300时,终端设备选择进程A和进程E进行释放;当adj为900时,终端设备选择进程D和进程G进行释放。
(2)在所述各个进程存在优先级不同的情况下,终端设备根据所述各个进程的占用总内存,选择优先级最低的进程中占用总内存最大的前N个进程进行释放。
示例性的,这里结合表4进行说明,终端设备先对各个不同优先级高低进行从高到低排序,即adj为0>adj为300>adj为900;再对优先级最低的各个进程占用总内存大小进行从大到小排序,即当adj为900时,进程D>进程G>进程B。
在所述各个进程存在优先级不同的情况下,假设,终端设备根据所述各个进程的占用总内存,选择优先级最低的进程中占用总内存最大的前2个进程进行释放,那么,这里终端设备就选择进程D和进程G进行释放。
可选的,在所述各个进程存在优先级不同的情况下,终端设备选择优先级最低的进程进行释放。
可选的,终端设备根据所述各个进程的占用总内存,选择占用总内存最大的进程进行释放,可以包括但不限于以下的实现方式:
(1)在所述各个进程存在优先级相同的情况下,根据所述各个进程的占用总内存,选择占用总内存最大的进程进行释放。
示例性的,这里结合表4进行说明,终端设备分别对不同优先级中各个进程占用总内存大小进行从大到小排序,即当adj为0时,只有进程F,不存在排序的问题;当adj为300时,进程A>进程E>进程C;当adj为900时,进程D>进程G>进程B。
在所述各个进程存在优先级相同的情况下,假设,终端设备根据所述各个进程的占用总内存,选择占用总内存最大的进程进行释放,那么,当adj为0时,终端设备就选择进程F进行释放;当adj为300时,终端设备就选择进程A进行释放;当adj为900时,终端设备选就择进程D进行释放。
(2)在所述各个进程存在优先级不同的情况下,根据所述各个进程的占用总内存,选择优先级最低的进程中占用总内存最大的进程进行释放。
示例性的,这里结合表4进行说明,终端设备先分别对不同优先级高低进行从高到低排序,即adj为0>adj为300>adj为900;再对优先级最低的各个进程占用总内存大小进行从大到小排序,即当adj为900时,进程D>进程G>进程B。
在所述各个进程优先级不同的情况下,假设,终端设备根据所述各个进程的占用总内存,选择优先级最低的进程中占用总内存最大的进程进行释放,那么,这里终端设备就选择进程D进行释放。
可选的,在所述各个进程优先级不同的情况下,终端设备选择优先级最低的进程进行释放。
在本发明实施例中,在终端设备的剩余内存小于预置内存阈值的情况下,可以获取各个进程的压缩后空间占用大小以及内存占用大小;再根据所述各个进程的压缩后空间占用大小以及内存占用大小,计算得到所述各个进程的占用总内存;然后根据所述各个进程的占用总内存,选择进程进行释放。即在终端设备的剩余内存小于预置内存阈值的情况下,选择进程释放时,除了考虑到各个进程的内存占用大小,还考虑到了各个进程的压缩后空间占用大小,所以,在选择进程进行释放时,结果相对现有技术来说,更准确一些。进一步的,终端选择进程释放,具体是选择占用总内存最大的前N个进程进行释放。进一步的,终端选择进程释放,具体是选择占用总内存最大的进程进行释放,可以释放出最多的内存,更好得解决***内存紧张的问题。
如图4所示,为本发明实施例中选择进程进行释放的方法的另一个实施例示意图,可以包括:
401、在终端设备的剩余内存小于预置内存阈值的情况下,获取各个进程的压缩后空间占用大小以及内存占用大小。
402、根据所述各个进程的压缩后空间占用大小以及内存占用大小,计算得到所述各个进程的占用总内存。
需要说明的是,本发明实施例中的步骤401和402可以参考图2所示实施例中的步骤201和202,此处不再赘述。
可选的,在本发明实施例中,根据所述各个进程的占用总内存,选择进程进行释放,可以包括:根据各个进程的占用总内存,确定对应的应用程序占用总内存;选择目标应用程序对应的各个进程进行释放,所述目标应用程序为所述应用程序占用总内存中最大的前M个应用程序。如下述步骤403和404所示。
可以理解的是,一个应用程序可对应多个进程。即进程是在自身的虚拟地址空间正在运行的一个程序,应用程序运行产生进程;应用程序是一组静态的指令集,不占用***运行资源,进程是随时都可能发生变化的、动态的、占用***运行资源的程序,故一个应用程序可以产生多个进程。
403、根据所述各个进程的占用总内存,确定对应的应用程序占用总内存。
示例性的,一个使用ZRAM或ZSWAP的Android终端设备运行的三个应用程序及其对应的各个进程占用总内存大小,如表5所示:
表5
结合表5进行说明,终端设备分别确定各个应用程序占用总内存,如下所示:
应用程序I占用总内存=进程A的占用总内存+进程B的占用总内存+进程C的占用总内存=210MB+230MB+140MB=580MB;
应用程序II占用总内存=进程D的占用总内存+进程E的占用总内存+进程F的占用总内存=310MB+180MB+50MB=540MB;
应用程序III占用总内存=进程G的占用总内存=240MB。
404、选择目标应用程序对应的各个进程进行释放,所述目标应用程序为所述应用程序占用总内存最大的前M个应用程序。
终端设备选择目标应用程序对应的各个进程进行释放,该目标应用程序为所述应用程序占用总内存最大的前M个应用程序。示例性的,这里结合表5进行说明,终端设备对各个应用程序占用总内存大小进行从大到小排序,即应用程序I>应用程序II>应用程序III。
假设,所述目标应用程序为所述应用程序占用总内存中最大的前2个应用程序,那么,这里终端设备选择目标应用程序I和目标应用程序II对应的各个进程进行释放。进一步可选的,终端设备可以先选择目标应用程序I,对应的各个进程进行释放,即终端设备先选择进程A、进程B和进程C进行释放;终端设备可以再选择目标应用程序II对应的各个进程进行释放,即终端设备再选择进程D、进程E和进程F进行释放。
可选的,该目标应用程序为所述应用程序占用总内存最大的应用程序。示例性的,结合表5进行说明,终端设备对各个应用程序占用总内存大小进行从大到小排序,即应用程序I>应用程序II>应用程序III。假设所述目标应用程序为所述应用程序占用总内存中最大的应用程序,那么,这里终端设备就选择目标应用程序I对应的各个进程进行释放,即终端设备选择进程A、进程B和进程C进行释放。
可选的,在目标应用程序为所述应用程序占用总内存最大的前M个应用程序的情况下,终端设备选择目标应用程序对应的各个进程进行释放,可以包括但不限于以下的实现方式:
(1)终端设备选择目标应用程序对应的各个进程中占用总内存最大的前P个进程进行释放。
示例性的,这里结合表5进行说明,终端设备先对各个应用程序占用总内存大小进行从大到小排序,即应用程序I>应用程序II>应用程序III;终端设备再对各个应用程序中各个进程占用总内存大小进行从大到小排序,即在应用程序I中,进程B>进程A>进程C;在应用程序II中,进程D>进程E>进程F;在应用程序III中,只有进程G。
假设,所述目标应用程序为所述应用程序占用总内存中最大的前2个应用程序,终端设备选择目标应用程序对应的各个进程中占用总内存最大的前2个进程进行释放,那么,这里终端设备选择目标应用程序I对应的进程B和进程A进行释放;选择目标应用程序II对应的进程D和进程E进行释放。
(2)终端设备选择目标应用程序对应的各个进程中占用总内存最大的进程进行释放。
示例性的,这里结合表5进行说明,终端设备先对各个应用程序占用总内存大小进行从大到小排序,即应用程序I>应用程序II>应用程序III;终端设备再对各个应用程序中各个进程占用总内存大小进行从大到小排序,即在应用程序I中,进程B>进程A>进程C;在应用程序II中,进程D>进程E>进程F;在应用程序III中,只有进程G。
假设,所述目标应用程序为所述应用程序占用总内存中最大的前2个应用程序,终端设备选择目标应用程序对应的各个进程中占用总内存最大的进程进行释放,那么,这里终端设备选择目标应用程序I对应的进程B进行释放;选择目标应用程序II对应的进程D进行释放。
可选的,在目标应用程序为所述应用程序占用总内存最大的应用程序的情况下,终端设备选择目标应用程序对应的各个进程进行释放,可以包括但不限于以下的实现方式:
(1)终端设备选择目标应用程序对应的各个进程中占用总内存最大的前P个进程进行释放。
(2)终端设备选择目标应用程序对应的各个进程中占用总内存最大的进程进行释放。
可以理解的是,这部分示例可以参考上述在目标应用程序为所述应用程序占用总内存中最大的前M个应用程序的情况下的说明,此处不再赘述。
可选的,该目标应用程序为预置时长内未使用,且应用程序占用总内存最大的前M个应用程序。
可选的,该目标应用程序为预置时长内未使用,且应用程序占用总内存最大的应用程序。
可以理解的是,终端设备根据各个进程的占用总内存,确定对应的应用程序占用总内存之后,还可以确定预置时长内未使用的应用程序;或者,终端设备先确定预置时长内未使用的应用程序之后,再根据各个进程的占用总内存,确定对应的应用程序占用总内存;进一步再确定预置时长内未使用的应用程序中,应用程序占用总内存最大的前M个应用程序为目标应用程序;进一步可选的,应用程序占用总内存最大的应用程序为目标应用程序。
示例性的,一个使用ZRAM或ZSWAP的Android终端设备,运行的三个应用程序占用总内存及其对应未使用时长(单位:天),如表6所示:
表6
结合表6进行说明,假设预置时长为30天,那么,在30天内未使用的应用程序为应用程序II和应用程序III,终端设备可以选择应用程序II和应用程序III中对应的各个进程进行释放;进一步的,终端设备也可以选择应用程序占用总内存最大的应用程序II对应的各个进程进行释放。
在本发明实施例中,在终端设备的剩余内存小于预置内存阈值的情况下,可以获取各个进程的压缩后空间占用大小以及内存占用大小;再根据所述各个进程的压缩后空间占用大小以及内存占用大小,计算得到所述各个进程的占用总内存;然后根据所述各个进程的占用总内存,选择进程进行释放。即在终端设备的剩余内存小于预置内存阈值的情况下,选择进程释放时,除了考虑到各个进程的内存占用大小,还考虑到了各个进程的压缩后空间占用大小,所以,在选择进程进行释放时,结果相对现有技术来说,更准确一些。进一步的,终端选择进程释放,具体是选择目标应用程序对应的各个进程进行释放,所述目标应用程序为所述应用程序占用总内存最大的前M个应用程序。
如图5所示,为本发明实施例中终端设备的一个实施例示意图,可以包括:
获取模块501,用于在终端设备的剩余内存小于预置内存阈值的情况下,获取各个进程的压缩后空间占用大小以及内存占用大小;
处理模块502,用于根据所述各个进程的压缩后空间占用大小以及内存占用大小,计算得到所述各个进程的占用总内存;根据所述各个进程的占用总内存,选择进程进行释放。
可选的,处理模块502具体用于在所述终端设备使用内存压缩技术的情况下,获取所述各个进程的压缩后空间占用大小。
可选的,处理模块502,具体用于获取所述各个进程的压缩前空间占用大小;通过计算所述各个进程的压缩前空间占用大小和压缩率的乘积,得到所述各个进程的压缩后空间占用大小;
其中,所述压缩率为当前***中压缩后空间占用大小与所述当前***中压缩前空间占用大小之比;或,所述压缩率为在预置时长内,所述当前***中压缩后空间占用大小与所述当前***中压缩前空间占用大小之比;或,所述压缩率为预置的。
可选的,处理模块502,具体用于对所述各个进程的压缩后空间占用大小以及内存占用大小求和,计算得到所述各个进程的占用总内存。
可选的,处理模块502,具体用于根据所述各个进程的占用总内存,选择占用总内存最大的前N个进程进行释放,所述N为大于等于1的整数;或,在所述各个进程存在优先级相同的情况下,根据所述各个进程的占用总内存,选择占用总内存最大的前N个进程进行释放;或,在所述各个进程存在优先级不同的情况下,根据所述各个进程的占用总内存,选择优先级最低的进程中占用总内存最大的前N个进程进行释放。
可选的,处理模块502,具体用于选择占用总内存最大的进程进行释放。
可选的,处理模块502,具体用于若所述终端设备满足预设条件,则获取各个进程的压缩后空间占用大小以及内存占用大小;所述预设条件包括所述终端设备的当前温度小于预置温度阈值,和/或,所述终端设备的剩余电量大于预置电量阈值中。
如图6所示,为本发明实施例中终端设备的另一个实施例示意图,可以包括:
图6示出的是与本发明实施例提供的终端设备相关的手机的部分结构的框图。参考图6,手机包括:射频(Radio Frequency,RF)电路610、存储器620、输入单元630、显示单元640、传感器650、音频电路660、无线保真(wireless fidelity,WiFi)模块670、处理器680、以及电源690等部件。本领域技术人员可以理解,图6中示出的手机结构并不构成对手机的限定,可以包括比图示更多或更少的部件,或者组合某些部件,或者不同的部件布置。
下面结合图6对手机的各个构成部件进行具体的介绍:
RF电路610可用于收发信息或通话过程中,信号的接收和发送,特别地,将基站的下行信息接收后,给处理器680处理;另外,将设计上行的数据发送给基站。通常,RF电路610包括但不限于天线、至少一个放大器、收发信机、耦合器、低噪声放大器(Low NoiseAmplifier,LNA)、双工器等。此外,RF电路610还可以通过无线通信与网络和其他设备通信。上述无线通信可以使用任一通信标准或协议,包括但不限于全球移动通讯***(GlobalSystem of Mobile communication,GSM)、通用分组无线服务(General Packet RadioService,GPRS)、码分多址(Code Division Multiple Access,CDMA)、宽带码分多址(Wideband Code Division Multiple Access,WCDMA)、长期演进(Long Term Evolution,LTE)、电子邮件、短消息服务(Short Messaging Service,SMS)等。
存储器620可用于存储软件程序以及模块,处理器680通过运行存储在存储器620的软件程序以及模块,从而执行手机的各种功能应用以及数据处理。存储器620可主要包括存储程序区和存储数据区,其中,存储程序区可存储操作***、至少一个功能所需的应用程序(比如声音播放功能、图像播放功能等)等;存储数据区可存储根据手机的使用所创建的数据(比如音频数据、电话本等)等。此外,存储器620可以包括高速随机存取存储器,还可以包括非易失性存储器,例如至少一个磁盘存储器件、闪存器件、或其他易失性固态存储器件。
输入单元630可用于接收输入的数字或字符信息,以及产生与手机的用户设置以及功能控制有关的键信号输入。具体地,输入单元630可包括触控面板631以及其他输入设备632。触控面板631,也称为触摸屏,可收集用户在其上或附近的触摸操作(比如用户使用手指、触笔等任何适合的物体或附件在触控面板631上或在触控面板631附近的操作),并根据预先设定的程式驱动相应的连接装置。可选的,触控面板631可包括触摸检测装置和触摸控制器两个部分。其中,触摸检测装置检测用户的触摸方位,并检测触摸操作带来的信号,将信号传送给触摸控制器;触摸控制器从触摸检测装置上接收触摸信息,并将它转换成触点坐标,再送给处理器680,并能接收处理器680发来的命令并加以执行。此外,可以采用电阻式、电容式、红外线以及表面声波等多种类型实现触控面板631。除了触控面板631,输入单元630还可以包括其他输入设备632。具体地,其他输入设备632可以包括但不限于物理键盘、功能键(比如音量控制按键、开关按键等)、轨迹球、鼠标、操作杆等中的一种或多种。
显示单元640可用于显示由用户输入的信息或提供给用户的信息以及手机的各种菜单。显示单元640可包括显示面板641,可选的,可以采用液晶显示器(Liquid CrystalDisplay,LCD)、有机发光二极管(Organic Light-Emitting Diode,OLED)等形式来配置显示面板641。进一步的,触控面板631可覆盖显示面板641,当触控面板631检测到在其上或附近的触摸操作后,传送给处理器680以确定触摸事件的类型,随后处理器680根据触摸事件的类型在显示面板641上提供相应的视觉输出。虽然在图6中,触控面板631与显示面板641是作为两个独立的部件来实现手机的输入和输入功能,但是在某些实施例中,可以将触控面板631与显示面板641集成而实现手机的输入和输出功能。
手机还可包括至少一种传感器650,比如光传感器、运动传感器以及其他传感器。具体地,光传感器可包括环境光传感器及接近传感器,其中,环境光传感器可根据环境光线的明暗来调节显示面板641的亮度,接近传感器可在手机移动到耳边时,关闭显示面板641和/或背光。作为运动传感器的一种,加速计传感器可检测各个方向上(一般为三轴)加速度的大小,静止时可检测出重力的大小及方向,可用于识别手机姿态的应用(比如横竖屏切换、相关游戏、磁力计姿态校准)、振动识别相关功能(比如计步器、敲击)等;至于手机还可配置的陀螺仪、气压计、湿度计、温度计、红外线传感器等其他传感器,在此不再赘述。
音频电路660、扬声器661,传声器662可提供用户与手机之间的音频接口。音频电路660可将接收到的音频数据转换后的电信号,传输到扬声器661,由扬声器661转换为声音信号输出;另一方面,传声器662将收集的声音信号转换为电信号,由音频电路660接收后转换为音频数据,再将音频数据输出处理器680处理后,经RF电路610以发送给比如另一手机,或者将音频数据输出至存储器620以便进一步处理。
WiFi属于短距离无线传输技术,手机通过WiFi模块670可以帮助用户收发电子邮件、浏览网页和访问流式媒体等,它为用户提供了无线的宽带互联网访问。虽然图6示出了WiFi模块670,但是可以理解的是,其并不属于手机的必须构成,完全可以根据需要在不改变发明的本质的范围内而省略。
处理器680是手机的控制中心,利用各种接口和线路连接整个手机的各个部分,通过运行或执行存储在存储器620内的软件程序和/或模块,以及调用存储在存储器620内的数据,执行手机的各种功能和处理数据,从而对手机进行整体监控。可选的,处理器680可包括一个或多个处理单元;优选的,处理器680可集成应用处理器和调制解调处理器,其中,应用处理器主要处理操作***、用户界面和应用程序等,调制解调处理器主要处理无线通信。可以理解的是,上述调制解调处理器也可以不集成到处理器680中。
手机还包括给各个部件供电的电源690(比如电池),优选的,电源可以通过电源管理***与处理器680逻辑相连,从而通过电源管理***实现管理充电、放电、以及功耗管理等功能。
尽管未示出,手机还可以包括摄像头、蓝牙模块等,在此不再赘述。
在本发明实施例中,该终端设备所包括的处理器680还具有以下功能:
在终端设备的剩余内存小于预置内存阈值的情况下,获取各个进程的压缩后空间占用大小以及内存占用大小;根据所述各个进程的压缩后空间占用大小以及内存占用大小,计算得到所述各个进程的占用总内存;根据所述各个进程的占用总内存,选择进程进行释放。
可选的,处理器680还具有以下功能:
在所述终端设备使用内存压缩技术的情况下,获取所述各个进程的压缩后空间占用大小。
可选的,处理器680还具有以下功能:
获取所述各个进程的压缩前空间占用大小;
通过计算所述各个进程的压缩前空间占用大小和压缩率的乘积,得到所述各个进程的压缩后空间占用大小;
其中,所述压缩率为当前***中压缩后空间占用大小与所述当前***中压缩前空间占用大小之比;或,所述压缩率为在预置时长内,所述当前***中压缩后空间占用大小与所述当前***中压缩前空间占用大小之比;或,所述压缩率为预置的。
可选的,处理器680还具有以下功能:
对所述各个进程的压缩后空间占用大小以及内存占用大小求和,计算得到所述各个进程的占用总内存。
可选的,处理器680还具有以下功能:
根据所述各个进程的占用总内存,选择占用总内存最大的前N个进程进行释放,所述N为大于等于1的整数;或,
在所述各个进程存在优先级相同的情况下,根据所述各个进程的占用总内存,选择占用总内存最大的前N个进程进行释放;或,
在所述各个进程存在优先级不同的情况下,根据所述各个进程的占用总内存,选择优先级最低的进程中占用总内存最大的前N个进程进行释放。
可选的,处理器680还具有以下功能:
选择占用总内存最大的进程进行释放。
可选的,处理器680还具有以下功能:
若所述终端设备满足预设条件,则获取各个进程的压缩后空间占用大小以及内存占用大小;所述预设条件包括所述终端设备的当前温度小于预置温度阈值,和/或,所述终端设备的剩余电量大于预置电量阈值中。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。
所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存储的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk(SSD))等。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,上述描述的***,装置和单元的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
在本发明所提供的几个实施例中,应该理解到,所揭露的***,装置和方法,可以通过其它的方式实现。例如,以上所描述的装置实施例仅仅是示意性的,例如,所述单元的划分,仅仅为一种逻辑功能划分,实际实现时可以有另外的划分方式,例如多个单元或组件可以结合或者可以集成到另一个***,或一些特征可以忽略,或不执行。另一点,所显示或讨论的相互之间的耦合或直接耦合或通信连接可以是通过一些接口,装置或单元的间接耦合或通信连接,可以是电性,机械或其它的形式。
所述作为分离部件说明的单元可以是或者也可以不是物理上分开的,作为单元显示的部件可以是或者也可以不是物理单元,即可以位于一个地方,或者也可以分布到多个网络单元上。可以根据实际的需要选择其中的部分或者全部单元来实现本实施例方案的目的。
另外,在本发明各个实施例中的各功能单元可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中。上述集成的单元既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)执行本发明各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(Read-Only Memory,ROM)、随机存取存储器(Random Access Memory,RAM)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,以上实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明各实施例技术方案的精神和范围。
Claims (10)
1.一种选择进程进行释放的方法,其特征在于,包括:
在终端设备的剩余内存小于预置内存阈值的情况下,获取各个进程的压缩后空间占用大小以及内存占用大小;
根据所述各个进程的压缩后空间占用大小以及内存占用大小,计算得到所述各个进程的占用总内存;
根据所述各个进程的占用总内存,选择进程进行释放。
2.根据权利要求1所述的方法,其特征在于,所述获取各个进程的压缩后空间占用大小,包括:
在所述终端设备使用内存压缩技术的情况下,获取所述各个进程的压缩后空间占用大小。
3.根据权利要求1中所述的方法,其特征在于,所述获取各个进程的压缩后空间占用大小,包括:
获取所述各个进程的压缩前空间占用大小;
通过计算所述各个进程的压缩前空间占用大小和压缩率的乘积,得到所述各个进程的压缩后空间占用大小;
其中,所述压缩率为当前***中压缩后空间占用大小与所述当前***中压缩前空间占用大小之比;或,
所述压缩率为在预置时长内,所述当前***中压缩后空间占用大小与所述当前***中压缩前空间占用大小之比;或,
所述压缩率为预置的。
4.根据权利要求1中所述的方法,其特征在于,所述根据所述各个进程的压缩后空间占用大小以及内存占用大小,计算得到所述各个进程的占用总内存,包括:
对所述各个进程的压缩后空间占用大小以及内存占用大小求和,计算得到所述各个进程的占用总内存。
5.根据权利要求1-4中任一项所述的方法,其特征在于,所述根据所述各个进程的占用总内存,选择进程进行释放,包括:
根据所述各个进程的占用总内存,选择占用总内存最大的前N个进程进行释放,所述N为大于等于1的整数;或,
在所述各个进程存在优先级相同的情况下,根据所述各个进程的占用总内存,选择占用总内存最大的前N个进程进行释放;或,
在所述各个进程存在优先级不同的情况下,根据所述各个进程的占用总内存,选择优先级最低的进程中占用总内存最大的前N个进程进行释放。
6.根据权利要求5所述的方法,其特征在于,所述选择占用总内存最大的前N个进程进行释放,包括:
选择占用总内存最大的进程进行释放。
7.根据权利要求1-4中任一项所述的方法,其特征在于,所述获取各个进程的压缩后空间占用大小以及内存占用大小,包括:
若所述终端设备满足预设条件,则获取各个进程的压缩后空间占用大小以及内存占用大小;
所述预设条件包括所述终端设备的当前温度小于预置温度阈值,和/或,所述终端设备的剩余电量大于预置电量阈值。
8.一种终端设备,其特征在于,包括:
获取模块,用于在终端设备的剩余内存小于预置内存阈值的情况下,获取各个进程的压缩后空间占用大小以及内存占用大小;
处理模块,用于根据所述各个进程的压缩后空间占用大小以及内存占用大小,计算得到所述各个进程的占用总内存;根据所述各个进程的占用总内存,选择进程进行释放。
9.一种终端设备,其特征在于,包括:
存储有可执行程序代码的存储器;
以及所述存储器耦合的处理器;
所述处理器调用所述存储器中存储的所述可执行程序代码,用于执行如权利要求1-7中任一项所述的方法。
10.一种计算机可读存储介质,包括指令,当其在计算机上运行时,使得计算机执行如权利要求1-7中任意一项所述的方法。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010642098.6A CN111880928B (zh) | 2020-07-06 | 2020-07-06 | 选择进程进行释放的方法、终端设备 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202010642098.6A CN111880928B (zh) | 2020-07-06 | 2020-07-06 | 选择进程进行释放的方法、终端设备 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN111880928A true CN111880928A (zh) | 2020-11-03 |
CN111880928B CN111880928B (zh) | 2024-04-19 |
Family
ID=73150168
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202010642098.6A Active CN111880928B (zh) | 2020-07-06 | 2020-07-06 | 选择进程进行释放的方法、终端设备 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN111880928B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112527407A (zh) * | 2020-12-07 | 2021-03-19 | 深圳创维-Rgb电子有限公司 | 一种应用启动方法、终端及计算机可读存储介质 |
CN116243850A (zh) * | 2021-06-08 | 2023-06-09 | 荣耀终端有限公司 | 一种存储器管理方法及电子设备 |
Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102141934A (zh) * | 2011-02-28 | 2011-08-03 | 浪潮(北京)电子信息产业有限公司 | 一种胖节点上的进程控制方法及装置 |
CN106550128A (zh) * | 2016-10-31 | 2017-03-29 | 努比亚技术有限公司 | 一种内存管理方法及终端 |
CN107463430A (zh) * | 2017-08-03 | 2017-12-12 | 哈尔滨工业大学 | 一种基于内存和Swap空间的虚拟机内存动态管理***及方法 |
CN107704321A (zh) * | 2017-09-30 | 2018-02-16 | 北京元心科技有限公司 | 内存分配的方法、装置及终端设备 |
CN110221921A (zh) * | 2019-06-13 | 2019-09-10 | 深圳Tcl新技术有限公司 | 内存管理方法、终端及计算机可读存储介质 |
CN110888746A (zh) * | 2019-12-10 | 2020-03-17 | Oppo(重庆)智能科技有限公司 | 内存管理方法、装置、存储介质及电子设备 |
CN111290848A (zh) * | 2018-12-06 | 2020-06-16 | 中兴通讯股份有限公司 | 一种内存优化方法、终端和计算机可读存储介质 |
CN111352861A (zh) * | 2020-02-19 | 2020-06-30 | Oppo广东移动通信有限公司 | 内存压缩方法、装置及电子设备 |
-
2020
- 2020-07-06 CN CN202010642098.6A patent/CN111880928B/zh active Active
Patent Citations (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102141934A (zh) * | 2011-02-28 | 2011-08-03 | 浪潮(北京)电子信息产业有限公司 | 一种胖节点上的进程控制方法及装置 |
CN106550128A (zh) * | 2016-10-31 | 2017-03-29 | 努比亚技术有限公司 | 一种内存管理方法及终端 |
CN107463430A (zh) * | 2017-08-03 | 2017-12-12 | 哈尔滨工业大学 | 一种基于内存和Swap空间的虚拟机内存动态管理***及方法 |
CN107704321A (zh) * | 2017-09-30 | 2018-02-16 | 北京元心科技有限公司 | 内存分配的方法、装置及终端设备 |
CN111290848A (zh) * | 2018-12-06 | 2020-06-16 | 中兴通讯股份有限公司 | 一种内存优化方法、终端和计算机可读存储介质 |
CN110221921A (zh) * | 2019-06-13 | 2019-09-10 | 深圳Tcl新技术有限公司 | 内存管理方法、终端及计算机可读存储介质 |
CN110888746A (zh) * | 2019-12-10 | 2020-03-17 | Oppo(重庆)智能科技有限公司 | 内存管理方法、装置、存储介质及电子设备 |
CN111352861A (zh) * | 2020-02-19 | 2020-06-30 | Oppo广东移动通信有限公司 | 内存压缩方法、装置及电子设备 |
Cited By (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN112527407A (zh) * | 2020-12-07 | 2021-03-19 | 深圳创维-Rgb电子有限公司 | 一种应用启动方法、终端及计算机可读存储介质 |
CN112527407B (zh) * | 2020-12-07 | 2023-09-22 | 深圳创维-Rgb电子有限公司 | 一种应用启动方法、终端及计算机可读存储介质 |
CN116243850A (zh) * | 2021-06-08 | 2023-06-09 | 荣耀终端有限公司 | 一种存储器管理方法及电子设备 |
CN116243850B (zh) * | 2021-06-08 | 2024-05-28 | 荣耀终端有限公司 | 一种存储器管理方法及电子设备 |
Also Published As
Publication number | Publication date |
---|---|
CN111880928B (zh) | 2024-04-19 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN106850978B (zh) | 一种应用程序控制方法及相关设备 | |
CN107368400B (zh) | Cpu监测方法、装置、计算机可读存储介质和移动终端 | |
CN104765591A (zh) | 一种软件配置参数更新的方法、终端服务器及*** | |
CN110837343B (zh) | 处理快照的方法、装置及终端 | |
CN110569078B (zh) | 一种网页级程序的预加载方法和装置 | |
CN110597793A (zh) | 数据管理方法及装置、电子设备和计算机可读存储介质 | |
CN107870874B (zh) | 一种数据写入控制方法及存储设备 | |
CN111880928B (zh) | 选择进程进行释放的方法、终端设备 | |
CN106534288A (zh) | 一种数据传输方法及移动终端 | |
CN110741346B (zh) | 应用管理方法及终端 | |
KR102239616B1 (ko) | 메시지 통지 방법 및 단말기 | |
CN110753914A (zh) | 信息处理方法、存储介质和移动终端 | |
CN104954231B (zh) | 一种发送、显示推荐信息的方法及装置 | |
CN110865743A (zh) | 任务管理方法和终端设备 | |
CN103034319B (zh) | 一种对终端进行显示控制的方法、控制装置及终端 | |
CN107329547B (zh) | 一种温度控制的方法和设备以及移动终端 | |
CN112486309B (zh) | 确定空闲状态对应时长的方法、控制芯片以及电子设备 | |
CN112214699B (zh) | 一种页面处理的方法及相关装置 | |
CN104216935A (zh) | 一种文件查找的方法及终端 | |
CN109151154B (zh) | 功耗控制方法、及移动终端 | |
CN107526668B (zh) | Cpu监控方法和装置、计算机设备、计算机可读存储介质 | |
CN114296641B (zh) | 增量文件传输方法、装置、电子设备及可读存储介质 | |
CN111954193B (zh) | 一种蓝牙设备连接检测方法、装置及移动终端 | |
CN105208064A (zh) | 一种获取微博信息的方法和装置 | |
CN111966493B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |