[发明专利]内存优化方法及装置有效
申请号: | 201410584383.1 | 申请日: | 2014-10-27 |
公开(公告)号: | CN104375828B | 公开(公告)日: | 2018-07-27 |
发明(设计)人: | 闫昊;邱峰;张建春 | 申请(专利权)人: | 小米科技有限责任公司 |
主分类号: | G06F9/44 | 分类号: | G06F9/44 |
代理公司: | 北京三高永信知识产权代理有限责任公司 11138 | 代理人: | 张所明 |
地址: | 100085 北京市海淀区清*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 内存 优化 方法 装置 | ||
本公开关于一种内存优化方法及装置,属于计算机技术领域。所述方法包括:接收携带有程序标识和内存释放函数的内存优化代码,程序标识用于标识需要释放空闲内存的应用程序,空闲内存是应用程序在前台运行时占用且在后台运行时不需占用的内存;通过内存优化代码检测应用程序是否从前台切换到后台运行;若通过内存优化代码检测出应用程序从前台切换到后台运行,则通过应用程序调用内存释放函数,内存释放函数用于释放空闲内存。所述装置包括:代码接收模块、状态检测模块和函数调用模块。本公开解决了在终端内存不足时才会触发内存资源回收,导致终端一直处于内存资源紧张状态的问题,达到了提高终端的处理能力的效果。
技术领域
本公开涉及计算机技术领域,特别涉及一种内存优化方法及装置。
背景技术
JAVA中由虚拟机管理运行的应用程序所占用的内存资源。应用程序启动时运行在前台,进行初始化会占用大量内存,进入稳定运行期后转到后台运行,此时不需要占用大量内存,而空闲的内存依然被应用程序占用,虚拟机经过很长时间处理才会被回收这些内存。因此,在内存资源不足的情况下,需要将空闲的内存资源快速回收。
在进行内存资源快速回收时,终端对所有运行的应用程序进行检测,若检测出所有运行的应用程序占用的内存资源值大于第一阈值,则对系统中运行的各个应用程序分别进行检测,若检测到存在某一个应用程序所占用的内存资源值大于第二阈值时,终止该应用程序的运行,回收该应用程序所占用的内存。
公开人在实现本公开的过程中,发现相关技术中至少存在以下缺陷:在终端内存不足时才会触发内存资源回收,导致终端一直处于内存资源紧张状态,降低了终端的处理能力。
发明内容
为解决在终端内存不足时才会触发内存资源回收,导致终端一直处于内存资源紧张状态的问题,本公开提供了一种内存优化方法及装置。
根据本公开实施例的第一方面,提供一种内存优化方法,包括:
接收携带有程序标识和内存释放函数的内存优化代码,所述程序标识用于标识需要释放空闲内存的应用程序,所述空闲内存是所述应用程序在前台运行时占用且在后台运行时不需占用的内存;
通过所述内存优化代码检测所述应用程序是否从前台切换到后台运行;
若通过所述内存优化代码检测出所述应用程序从前台切换到后台运行,则通过所述应用程序调用所述内存释放函数,所述内存释放函数用于释放所述空闲内存。
可选的,若所述内存释放函数是处于禁止编辑状态的私有函数,则所述方法还包括:
获取所述应用程序调用的公有函数的绝对地址,其中,所述公有函数具有调用所述内存释放函数的权限;
对所述公有函数的绝对地址进行显示,所述公有函数的绝对地址用于指示计算所述内存释放函数的绝对地址且将所述内存释放函数的绝对地址添加到所述内存优化代码中,所述内存释放函数的绝对地址等于所述公有函数的绝对地址加上所述公有函数和所述内存释放函数的相对地址,所述公有函数和所述内存释放函数的相对地址由预设的符号表提供。
可选的,所述获取所述应用程序调用的公有函数的绝对地址,包括:
接收携带有所述程序标识和所述公有函数的函数标识的地址读取指令;
在动态链接库中,查找所述应用程序调用的所述公有函数的绝对地址。
可选的,所述通过所述应用程序调用所述内存释放函数,包括:
通过所述内存优化代码将所述内存释放函数的绝对地址发送给所述应用程序;
在所述内存释放函数的绝对地址的指示下,通过所述应用程序调用所述内存释放函数。
可选的,所述内存释放函数是对处于允许编辑状态的私有函数进行编辑后得到的公有函数。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于小米科技有限责任公司,未经小米科技有限责任公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201410584383.1/2.html,转载请声明来源钻瓜专利网。