[发明专利]内存优化方法及装置有效
申请号: | 201410584383.1 | 申请日: | 2014-10-27 |
公开(公告)号: | CN104375828B | 公开(公告)日: | 2018-07-27 |
发明(设计)人: | 闫昊;邱峰;张建春 | 申请(专利权)人: | 小米科技有限责任公司 |
主分类号: | G06F9/44 | 分类号: | G06F9/44 |
代理公司: | 北京三高永信知识产权代理有限责任公司 11138 | 代理人: | 张所明 |
地址: | 100085 北京市海淀区清*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 内存 优化 方法 装置 | ||
1.一种内存优化方法,其特征在于,包括:
接收携带有程序标识和内存释放函数的内存优化代码,所述程序标识用于标识需要释放空闲内存的应用程序,所述空闲内存是所述应用程序在前台运行时占用且在后台运行时不需占用的内存;
通过所述内存优化代码检测所述应用程序是否从前台切换到后台运行;
若通过所述内存优化代码检测出所述应用程序从前台切换到后台运行,则通过所述应用程序调用所述内存释放函数,所述内存释放函数用于释放所述空闲内存;
其中,所述内存释放函数是对处于允许编辑状态的私有函数进行编辑后得到的公有函数。
2.根据权利要求1所述的方法,其特征在于,若所述内存释放函数是处于禁止编辑状态的私有函数,则所述方法还包括:
获取所述应用程序调用的公有函数的绝对地址,其中,所述公有函数具有调用所述内存释放函数的权限;
对所述公有函数的绝对地址进行显示,所述公有函数的绝对地址用于指示计算所述内存释放函数的绝对地址且将所述内存释放函数的绝对地址添加到所述内存优化代码中,所述内存释放函数的绝对地址等于所述公有函数的绝对地址加上所述公有函数和所述内存释放函数的相对地址,所述公有函数和所述内存释放函数的相对地址由预设的符号表提供。
3.根据权利要求2所述的方法,其特征在于,所述获取所述应用程序调用的公有函数的绝对地址,包括:
接收携带有所述程序标识和所述公有函数的函数标识的地址读取指令;
在动态链接库中,查找所述应用程序调用的所述公有函数的绝对地址。
4.根据权利要求2或3所述的方法,其特征在于,所述通过所述应用程序调用所述内存释放函数,包括:
通过所述内存优化代码将所述内存释放函数的绝对地址发送给所述应用程序;
在所述内存释放函数的绝对地址的指示下,通过所述应用程序调用所述内存释放函数。
5.一种内存优化装置,其特征在于,包括:
代码接收模块,被配置为接收携带有程序标识和内存释放函数的内存优化代码,所述程序标识用于标识需要释放空闲内存的应用程序,所述空闲内存是所述应用程序在前台运行时占用且在后台运行时不需占用的内存;
状态检测模块,被配置为通过所述代码接收模块接收的所述内存优化代码检测所述应用程序是否从前台切换到后台运行;
函数调用模块,被配置为当所述状态检测模块通过所述内存优化代码检测出所述应用程序从前台切换到后台运行时,通过所述应用程序调用所述内存释放函数,所述内存释放函数用于释放所述空闲内存;
其中,所述内存释放函数是对处于允许编辑状态的私有函数进行编辑后得到的公有函数。
6.根据权利要求5所述的装置,其特征在于,当所述内存释放函数是处于禁止编辑状态的私有函数时,所述装置还包括:
地址获取模块,被配置为获取所述应用程序调用的公有函数的绝对地址,其中,所述公有函数具有调用所述内存释放函数的权限;
地址显示模块,被配置为对所述地址获取模块获取的所述公有函数的绝对地址进行显示,所述公有函数的绝对地址用于指示计算所述内存释放函数的绝对地址且将所述内存释放函数的绝对地址添加到所述内存优化代码中,所述内存释放函数的绝对地址等于所述公有函数的绝对地址加上所述公有函数和所述内存释放函数的相对地址,所述公有函数和所述内存释放函数的相对地址由预设的符号表提供。
7.根据权利要求6所述的装置,其特征在于,所述地址获取模块,包括:
指令接收子模块,被配置为接收携带有所述程序标识和所述公有函数的函数标识的地址读取指令;
地址查找子模块,被配置为在动态链接库中,查找所述指令接收子模块指示的所述应用程序调用的所述公有函数的绝对地址。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于小米科技有限责任公司,未经小米科技有限责任公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201410584383.1/1.html,转载请声明来源钻瓜专利网。