CN104111873A - 内存释放方法及*** - Google Patents
内存释放方法及*** Download PDFInfo
- Publication number
- CN104111873A CN104111873A CN201310139927.9A CN201310139927A CN104111873A CN 104111873 A CN104111873 A CN 104111873A CN 201310139927 A CN201310139927 A CN 201310139927A CN 104111873 A CN104111873 A CN 104111873A
- Authority
- CN
- China
- Prior art keywords
- program
- electronic installation
- priority
- internal memory
- memory
- 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
Landscapes
- Stored Programmes (AREA)
- Memory System (AREA)
Abstract
本发明提供一种内存释放方法,该方法包括步骤:设置内存的剩余容量与电子装置中程序所属优先级范围之间的关联;每隔一个预设的第一时间间隔获取内存的当前剩余容量;当电子装置需要释放内存时,根据内存的当前剩余容量及所述关联,确定电子装置要释放的程序的理论所属优先级范围;根据上述理论所属优先级范围中是否存在正在运行的程序,判定电子装置当前要释放的程序实际所属优先级范围;在所述实际所属优先级范围所对应的正在运行的程序中找出占用内存容量最大的程序;及释放所述占用内存容量最大的程序。本发明还提供一种内存释放***。本发明可以在电子装置内存剩余容量不足时释放电子装置的内存。
Description
技术领域
本发明涉及一种内存管理方法及***,尤其是关于一种在内存释放的方法及***。
背景技术
随着电子、通信等技术的快速发展,智能手机,如安卓(Android)手机在手机市场的份额越来越高。基于成本的考量,在智能手机的设计、生产过程中,低内存为控制手机成本的一个常用方式。然而,低内存手机在待机或使用一段时间后,反应速度会变慢,有时甚至会出现卡死(长时间没有反应)的现象。用户在遇到这类问题时,经常需要重启手机,因此造成用户体验差。针对该类问题,目前常用的解决方法为:在手机中安装一个释放手机内存的软件,当用户感觉***缓慢的时候手动运行该软件以改善手机状况。该解决方法需要用户手动运行软件,造成用户使用上的不便利。
发明内容
鉴于以上内容,有必要提供一种内存释放方法及***,可以在电子装置中内存剩余容量不足时自动释放电子装置的内存。
一种内存释放方法,应用于电子装置中,该方法包括步骤:(a)设置内存的剩余容量与电子装置中程序所属优先级范围之间的关联;(b)每隔一个预设的第一时间间隔获取内存的当前剩余容量;(c)当电子装置需要释放内存时,根据内存的当前剩余容量及所述关联,确定电子装置要释放的程序的理论所属优先级范围;(d)根据上述理论所属优先级范围中是否存在正在运行的程序,判定电子装置当前要释放的程序实际所属优先级范围;(e)在所述实际所属优先级范围所对应的正在运行的程序中找出占用内存容量最大的程序;及(f)释放所述占用内存容量最大的程序。
一种内存释放***,运行于电子装置中,该***包括:设置模块,用于设置内存的剩余容量与电子装置中程序所属优先级范围之间的关联;获取模块,用于每隔一个预设的第一时间间隔获取内存的当前剩余容量;确定模块,用于当电子装置需要释放内存时,根据内存的当前剩余容量及所述关联,确定电子装置要释放的程序的理论所属优先级范围;判定模块,用于根据上述理论所属优先级范围中是否存在正在运行的程序,判定电子装置当前要释放的程序实际所属优先级范围;寻找模块,用于在所述实际所属优先级范围所对应的正在运行的程序中找出占用内存容量最大的程序;及释放模块,用于释放所述占用内存容量最大的程序。
相较于现有技术,本发明提供的内存释放方法及***,每隔一个预设的时间间隔获取电子装置当前的内存状态,并在电子装置的内存剩余容量不足时,释放电子装置的内存,可以有效防止电子装置出现反应速度会变慢或者卡死等现象,从而提高用户体验。
附图说明
图1是本发明内存释放***较佳实施例的硬件架构图。
图2是本发明内存释放方法较佳实施例的作业流程图。
图3是本发明内存释放方法较佳实施例判定电子装置当前要释放的程序实际所属优先级范围的子流程图。
主要元件符号说明
电子装置 | 100 |
内存释放*** | 10 |
设置模块 | 11 |
获取模块 | 12 |
确定模块 | 13 |
判定模块 | 14 |
寻找模块 | 15 |
释放模块 | 16 |
存储单元 | 20 |
内存 | 30 |
程序 | 40 |
如下具体实施方式将结合上述附图进一步说明本发明。
具体实施方式
参阅图1所示,是本发明内存释放***较佳实施例的硬件架构图。该内存释放***10运行于电子装置100中,该电子装置100可以是智能手机、平板电脑、掌上电脑(Personal Digital Assistant,PDA)等。该电子装置100还包括部件,如存储单元20、内存30、及程序40。电子装置的部件10-40通过***总线进行通信。所述内存释放***10用于获取内存30的剩余容量,并在内存30的剩余容量低于一个预设容量阀值时,选取一个程序40以释放该选取的程序40。该选取的程序40可以为前台程序或后台程序。所述存储单元20用于存储电子装置100中的数据。
该内存释放***10包括设置模块11、获取模块12、确定模块13、判定模块14、寻找模块15及释放模块16。模块11-16包括计算机化程序指令。
设置模块11用于设置内存30的剩余容量与电子装置100中程序40所属优先级范围之间的关联。电子装置100中每个程序40均对应有一个优先级,该优先级用于标识程序40的重要性。本实施例中,优先级对应的数值越大,则说明程序40的重要性越低,其中,后台运行的程序40的优先级都大于0,前台运行的程序40的优先级都等于0。
在本实施例中,所述关联可以包括:当内存30的剩余容量小于第一预设阀值(例如40兆(M))且大于或等于第二预设阀值(例如16M)时,电子装置100中程序40所属优先级范围大于或等于第一预设优先级(例如15);当内存30的剩余容量小于第二预设阀值(例如16M)且大于或等于第三预设阀值(例如8M)时,电子装置100中程序40所属优先级范围大于或等于第二预设优先级(例如7);当内存30的剩余容量小于第三预设阀值(例如8M)且大于或等于第四预设阀值(例如3M)时,电子装置100中程序40所属优先级范围大于或等于第三预设优先级(例如1);当内存30的剩余容量小于第四预设阀值(例如3M)且大于或等于第五预设阀值(例如0M)时,电子装置100中程序40所属优先级范围大于第四预设优先级(例如0)。
获取模块12用于每隔一个预设的第一时间间隔获取内存30的当前剩余容量。所述第一时间间隔由用户或***预设,如为50毫秒(ms)。
当电子装置100需要释放内存30时,确定模块13用于根据内存30的当前剩余容量及所述关联,确定电子装置100要释放的程序40的理论所属优先级范围。例如,若内存30的当前剩余容量为30M,小于所述第一预设阀值且大于所述第二预设阀值,则确定模块13确定电子装置100要释放的程序40理论所属优先级范围大于或等于15。需要说明的是,当内存30的剩余容量小于所述第一预设阀值,且电子装置100当前没有程序40在释放时,则说明电子装置100需要释放内存30。
判定模块14用于根据上述理论所属优先级范围中是否存在正在运行的程序40,判定电子装置100当前要释放的程序40实际所属优先级范围。
在本较佳实施例中,当所述理论所属优先级范围中存在正在运行的程序40时,判定模块14判定所述当前要释放的程序40实际所属优先级范围为所述理论所属优先级范围。当所述理论所属优先级范围中不存在正在运行的程序40,且电子装置100不存在大块内存,然而,电子装置100中存在正在运行的优先级大于0的程序40时(即后台运行的程序),判定模块14判定所述当前要释放的程序40实际所属优先级范围为大于0。当所述理论所属优先级范围中不存在正在运行的程序40,且电子装置100不存在大块内存,以及电子装置100在一个预设的第二时间间隔内均不存在正在运行的优先级大于0的程序40时,判定模块14判定所述当前要释放的程序40实际所属优先级范围为等于0(即前台运行的程序)。所述第二时间间隔由用户或***预设,如为500ms。
需要说明的是,内存30在电子装置100中采用内存池进行管理,在该内存池中内存30被分为大块内存及小块内存。所述大块内存是指内存容量大于或等于一个预设容量(例如32千字节(kb))的内存30。当电子装置100中存在大块内存时,即使内存30的剩余容量不大,但电子装置100中还是存在可用的内存30,此时,电子装置100不用释放内存30。
寻找模块15用于在所述实际所属优先级范围所对应的正在运行的程序40中找出占用内存容量最大的程序40。
释放模块16用于将该占用内存容量最大的程序40记录至存储单元20中,并释放该占用内存容量最大的程序40。
在本发明中,当内存30的剩余容量低于某一个预设阀值,但该预设阀值所对应的理论所属优先级范围内并不存在正在运行的程序40时,将根据电子装置100中大块内存的剩余量来判断是否需要从更低优先级的程序40中选取一个后台程序(优先级大于0的程序40)来释放。如果后台程序已经全部释放,并且***在所述预设的第二时间间隔内均处于低内存的状态时,将选择某个前台程序(优先级等于0的程序40)来释放,以保证电子装置100不被卡死。
参阅图2所示,是本发明内存释放方法较佳实施例的作业流程图。
步骤S10,设置模块11设置内存30的剩余容量与电子装置100中程序40所属优先级范围之间的关联。例如,所述关联包括:当内存30的剩余容量小于第一预设阀值(例如40M)且大于或等于第二预设阀值(例如16M)时,电子装置100中程序40所属优先级范围大于或等于第一预设优先级(例如15);当内存30的剩余容量小于第二预设阀值(例如16M)且大于或等于第三预设阀值(例如8M)时,电子装置100中程序40所属优先级范围大于或等于第二预设优先级(例如7);当内存30的剩余容量小于第三预设阀值(例如8M)且大于或等于第四预设阀值(例如3M)时,电子装置100中程序40所属优先级范围大于或等于第三预设优先级(例如1);当内存30的剩余容量小于第四预设阀值(例如3M)且大于或等于第五预设阀值(例如0M)时,电子装置100中程序40所属优先级范围大于第四预设优先级(例如0)。
步骤S20,获取模块12每隔一个预设的第一时间间隔获取内存30的当前剩余容量。所述第一时间间隔由用户或***预设,如为50毫秒(ms)。
步骤S30,当电子装置100需要释放内存30时,确定模块13根据内存30的当前剩余容量及所述关联,确定电子装置100要释放的程序40的理论所属优先级范围。例如,若内存30的当前剩余容量为30M,小于所述第一预设阀值且大于所述第二预设阀值,则确定模块13确定电子装置100要释放的程序40理论所属优先级范围大于或等于15。需要说明的是,当内存30的剩余容量小于所述第一预设阀值,且电子装置100当前没有程序40在释放时,则说明电子装置100需要释放内存30。
步骤S40,判定模块14根据上述理论所属优先级范围中是否存在正在运行的程序40,判定电子装置100当前要释放的程序40实际所属优先级范围。所述判定电子装置100当前要释放的程序40实际所属优先级范围的过程将在图3中进行详细介绍。
步骤S50,寻找模块15在所述实际所属优先级范围所对应的正在运行的程序40中找出占用内存容量最大的程序40。
步骤S60,释放模块16将该占用内存容量最大的程序40记录至存储单元20中,并释放该占用内存容量最大的程序40。
参阅图3所示,是本发明内存释放方法较佳实施例判定电子装置100当前要释放的程序40实际所属优先级范围的子流程图。
步骤S400,判定模块14判断所述理论所属优先级范围中是否存在正在运行的程序40。当所述理论所属优先级范围中存在正在运行的程序40时,执行步骤S460,判定模块14判定所述当前要释放的程序40实际所属优先级范围为所述理论所属优先级范围。当所述理论所属优先级范围中不存在正在运行的程序40时,执行步骤S410。
步骤S410,判定模块14判断电子装置100中是否存在大块内存。当电子装置100中不存在大块内存时,执行步骤S420,否则,直接结束流程。
步骤S420,判定模块14判断电子装置100中是否存在正在运行的优先级大于0的程序40。当电子装置100中不存在正在运行的优先级大于0的程序40时,执行步骤S430,否则,执行步骤S450。
步骤S430,判定模块14判断电子装置100是否在一个预设的第二时间间隔内均不存在正在运行的优先级大于0的程序40。当电子装置100在所述预设的第二时间间隔内均不存在正在运行的优先级大于0的程序40时,执行步骤S440,否则,执行步骤S450。该第二时间间隔由用户或***预设,如为500ms。
步骤S440,判定模块14判定所述当前要释放的程序40实际所属优先级范围等于0。
步骤S450,判定模块14判定所述当前要释放的程序40实际所属优先级范围大于0。
最后所应说明的是,以上实施例仅用以说明本发明的技术方案而非限制,尽管参照以上较佳实施例对本发明进行了详细说明,本领域的普通技术人员应当理解,可以对本发明的技术方案进行修改或等同替换,而不脱离本发明技术方案的精神和范围。
Claims (8)
1.一种内存释放方法,应用于电子装置中,其特征在于,该方法包括:
设置步骤:设置内存的剩余容量与电子装置中程序所属优先级范围之间的关联;
获取步骤:每隔一个预设的第一时间间隔获取内存的当前剩余容量;
确定步骤:当电子装置需要释放内存时,根据内存的当前剩余容量及所述关联,确定电子装置要释放的程序的理论所属优先级范围;
判定步骤:根据上述理论所属优先级范围中是否存在正在运行的程序,判定电子装置当前要释放的程序实际所属优先级范围;
寻找步骤:在所述实际所属优先级范围所对应的正在运行的程序中找出占用内存容量最大的程序;及
释放步骤:释放所述占用内存容量最大的程序。
2.如权利要求1所述的内存释放方法,其特征在于,所述关联包括:
当内存的剩余容量小于第一预设阀值且大于或等于第二预设阀值时,电子装置中程序所属优先级范围大于或等于第一预设优先级;
当内存的剩余容量小于第二预设阀值且大于或等于第三预设阀值时,电子装置中程序所属优先级范围大于或等于第二预设优先级;
当内存的剩余容量小于第三预设阀值且大于或等于第四预设阀值时,电子装置中程序所属优先级范围大于或等于第三预设优先级;及
当内存的剩余容量小于第四预设阀值且大于或等于第五预设阀值时,电子装置中程序所属优先级范围大于第四预设优先级。
3.如权利要求2所述的内存释放方法,其特征在于,当内存的剩余容量小于所述第一预设阀值,且电子装置当前没有程序在释放时,则电子装置需要释放内存。
4.如权利要求2所述的内存释放方法,其特征在于,所述判定步骤包括:
当所述理论所属优先级范围中存在正在运行的程序时,判定所述当前要释放的程序实际所属优先级范围为所述理论所属优先级范围;
当所述理论所属优先级范围中不存在正在运行的程序,且电子装置不存在大块内存,然而电子装置中存在正在运行的大于所述第四预设优先级的程序时,判定所述当前要释放的程序实际所属优先级范围为大于所述第四预设优先级;及
当所述理论所属优先级范围中不存在正在运行的程序,且电子装置不存在大块内存,以及电子装置在一个预设的第二时间间隔内均不存在正在运行的大于所述第四预设优先级的程序时,判定所述当前要释放的程序实际所属优先级范围等于所述第四预设优先级。
5.一种内存释放***,运行于电子装置中,其特征在于,该***包括:
设置模块,用于设置内存的剩余容量与电子装置中程序所属优先级范围之间的关联;
获取模块,用于每隔一个预设的第一时间间隔获取内存的当前剩余容量;
确定模块,用于当电子装置需要释放内存时,根据内存的当前剩余容量及所述关联,确定电子装置要释放的程序的理论所属优先级范围;
判定模块,用于根据上述理论所属优先级范围中是否存在正在运行的程序,判定电子装置当前要释放的程序实际所属优先级范围;
寻找模块,用于在所述实际所属优先级范围所对应的正在运行的程序中找出占用内存容量最大的程序;及
释放模块,用于释放所述占用内存容量最大的程序。
6.如权利要求5所述的内存释放***,其特征在于,所述关联包括:
当内存的剩余容量小于第一预设阀值且大于或等于第二预设阀值时,电子装置中程序所属优先级范围大于或等于第一预设优先级;
当内存的剩余容量小于第二预设阀值且大于或等于第三预设阀值时,电子装置中程序所属优先级范围大于或等于第二预设优先级;
当内存的剩余容量小于第三预设阀值且大于或等于第四预设阀值时,电子装置中程序所属优先级范围大于或等于第三预设优先级;及
当内存的剩余容量小于第四预设阀值且大于或等于第五预设阀值时,电子装置中程序所属优先级范围大于第四预设优先级。
7.如权利要求6所述的内存释放***,其特征在于,当内存的剩余容量小于所述第一预设阀值,且电子装置当前没有程序在释放时,则电子装置需要释放内存。
8.如权利要求6所述的内存释放***,其特征在于,所述判定模块通过以下步骤判定电子装置当前要释放的程序实际所属优先级范围:
当所述理论所属优先级范围中存在正在运行的程序时,判定所述当前要释放的程序实际所属优先级范围为所述理论所属优先级范围;
当所述理论所属优先级范围中不存在正在运行的程序,且电子装置不存在大块内存,然而电子装置中存在正在运行的大于所述第四预设优先级的程序时,判定所述当前要释放的程序实际所属优先级范围为大于所述第四预设优先级;及
当所述理论所属优先级范围中不存在正在运行的程序,且电子装置不存在大块内存,以及电子装置在一个预设的第二时间间隔内均不存在正在运行的大于所述第四预设优先级的程序时,判定所述当前要释放的程序实际所属优先级范围等于所述第四预设优先级。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310139927.9A CN104111873B (zh) | 2013-04-22 | 2013-04-22 | 内存释放方法及*** |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN201310139927.9A CN104111873B (zh) | 2013-04-22 | 2013-04-22 | 内存释放方法及*** |
Publications (2)
Publication Number | Publication Date |
---|---|
CN104111873A true CN104111873A (zh) | 2014-10-22 |
CN104111873B CN104111873B (zh) | 2019-02-26 |
Family
ID=51708671
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201310139927.9A Active CN104111873B (zh) | 2013-04-22 | 2013-04-22 | 内存释放方法及*** |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN104111873B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017114288A1 (zh) * | 2015-12-31 | 2017-07-06 | 华为技术有限公司 | 一种内存回收方法及装置 |
CN107168792A (zh) * | 2017-04-24 | 2017-09-15 | 宇龙计算机通信科技(深圳)有限公司 | 一种进程管理方法、及终端设备 |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090113444A1 (en) * | 2007-10-31 | 2009-04-30 | Google Inc. | Application Management |
CN102521057A (zh) * | 2011-12-31 | 2012-06-27 | 曙光信息产业股份有限公司 | 资源调度方法和装置 |
CN102799471A (zh) * | 2012-05-25 | 2012-11-28 | 上海斐讯数据通信技术有限公司 | 操作***的进程回收方法及*** |
CN102968335A (zh) * | 2012-10-25 | 2013-03-13 | 东莞宇龙通信科技有限公司 | 终端和终端内存管理方法 |
CN103024538A (zh) * | 2012-11-12 | 2013-04-03 | 北京奇虎科技有限公司 | 内存管理方法及*** |
-
2013
- 2013-04-22 CN CN201310139927.9A patent/CN104111873B/zh active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090113444A1 (en) * | 2007-10-31 | 2009-04-30 | Google Inc. | Application Management |
CN102521057A (zh) * | 2011-12-31 | 2012-06-27 | 曙光信息产业股份有限公司 | 资源调度方法和装置 |
CN102799471A (zh) * | 2012-05-25 | 2012-11-28 | 上海斐讯数据通信技术有限公司 | 操作***的进程回收方法及*** |
CN102968335A (zh) * | 2012-10-25 | 2013-03-13 | 东莞宇龙通信科技有限公司 | 终端和终端内存管理方法 |
CN103024538A (zh) * | 2012-11-12 | 2013-04-03 | 北京奇虎科技有限公司 | 内存管理方法及*** |
Cited By (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2017114288A1 (zh) * | 2015-12-31 | 2017-07-06 | 华为技术有限公司 | 一种内存回收方法及装置 |
US11023372B2 (en) | 2015-12-31 | 2021-06-01 | Huawei Technologies Co., Ltd. | Application memory reclaim method and apparatus |
CN107168792A (zh) * | 2017-04-24 | 2017-09-15 | 宇龙计算机通信科技(深圳)有限公司 | 一种进程管理方法、及终端设备 |
Also Published As
Publication number | Publication date |
---|---|
CN104111873B (zh) | 2019-02-26 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11182213B2 (en) | Application program management method and device | |
CN106528216A (zh) | 一种启动应用程序的方法及终端 | |
CN103645955A (zh) | 应用程序的运行管理方法和装置 | |
US8788776B2 (en) | Hard disk control method, hard disk control device and computer | |
CN103324507A (zh) | 一种终端预置应用程序更新的方法和装置 | |
US10552320B2 (en) | Using a projected out of memory score to selectively terminate a process without transitioning to a background mode | |
CN104731301A (zh) | 一种移动终端的省电操作方法、***及移动终端 | |
CN108804294A (zh) | 电量提醒的方法、装置、设备和计算机可读存储介质 | |
CN103902357A (zh) | 应用程序管理***及方法 | |
CN104808767A (zh) | 一种终端控制方法 | |
CN104932933A (zh) | 一种获取自旋锁的方法及装置 | |
CN105373485A (zh) | 内存清理***、方法及终端设备 | |
CN104199691A (zh) | 一种基于安卓平台的开机自启动apk的方法及终端 | |
CN103365392B (zh) | 内存管理*** | |
CN104808766A (zh) | 一种终端 | |
CN103543901A (zh) | 生成菜单的方法和装置 | |
CN104111873A (zh) | 内存释放方法及*** | |
CN103870319A (zh) | 信息处理方法、装置及电子设备 | |
CN105843357B (zh) | 在节电处理中维持应用正常工作的方法及电子设备 | |
CN105740071B (zh) | 一种安卓***运行速度管理方法及*** | |
CN112463367A (zh) | 一种存储***性能优化方法、***及电子设备和存储介质 | |
JP6254303B2 (ja) | ユーザ識別モジュールプロトコルの切替 | |
CN115185687B (zh) | 基于深度学习的内存分配方法 | |
CN116094083B (zh) | 充电方法、装置及存储介质 | |
CN107391254B (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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |