[发明专利]内存管理方法及装置在审
申请号: | 201510981811.9 | 申请日: | 2015-12-23 |
公开(公告)号: | CN106909458A | 公开(公告)日: | 2017-06-30 |
发明(设计)人: | 孟齐源;高祎玮 | 申请(专利权)人: | 北京奇虎科技有限公司;奇智软件(北京)有限公司 |
主分类号: | G06F9/50 | 分类号: | G06F9/50 |
代理公司: | 北京市浩天知识产权代理事务所(普通合伙)11276 | 代理人: | 宋菲,刘兰兰 |
地址: | 100088 北京市西城区新*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 内存 管理 方法 装置 | ||
技术领域
本发明涉及网络通信技术领域,具体涉及一种内存管理方法及装置。
背景技术
在安卓(Android)系统中,应用程序的内存资源属于紧缺资源。对于应用,尤其是工具类应用来说,内存占用情况更是衡量应用程序是否异常的重要指标之一。当应用程序的内存占用量过大时,将会导致系统卡慢,甚至导致应用程序的内存耗尽(Out of memory,简称OOM)问题。
为此,需要监测系统中各个进程的内存占用情况,并根据内存占用情况对内存资源进行管理。现有技术中,在Android系统中检测进程的内存占用情况时,通常是针对某一进程分析该进程在特定的一个时刻的内存占用情况,并根据该时刻的内存占用情况进行管理。在这种方式中,仅根据一个时刻的内存占用情况来监测进程的内存状态,无法连续获取一段时间内的内存变化情况,因而无法确定内存占用情况的动态变化规律,进而导致内存管理的效果不佳。
发明内容
鉴于上述问题,提出了本发明以便提供一种克服上述问题或者至少部分地解决上述问题的内存管理方法及装置。
依据本发明的一个方面,提供了一种内存管理方法,包括:对应用程序的代码段进行分析,将其中用于执行内存相关操作的函数确定为目标函数;向所述目标函数中注入用于管理内存状态的挂钩函数;当所述目标函数运行至所述挂钩函数所在位置时,由所述挂钩函数根据所述目标函数对应进程的进程内存映像来确定内存占用情况,并根据所述内存占用情况进行内存管理。
依据本发明的另一方面,提供了一种内存管理装置,包括:分析模块, 适于对应用程序的代码段进行分析,将其中用于执行内存相关操作的函数确定为目标函数;注入模块,适于向所述目标函数中注入用于管理内存状态的挂钩函数;管理模块,适于当所述目标函数运行至所述挂钩函数所在位置时,控制所述挂钩函数根据所述目标函数对应进程的进程内存映像来确定内存占用情况,并根据所述内存占用情况进行内存管理。
在本发明提供的内存管理方法及装置中,能够从应用程序的代码段中获取用于执行内存相关操作的函数,并向这些函数中注入用于管理内存状态的挂钩函数,从而由挂钩函数在程序运行过程中动态监测内存占用情况,主动跟踪内存的动态变化量,使得内存资源得到更加合理的利用。
上述说明仅是本发明技术方案的概述,为了能够更清楚了解本发明的技术手段,而可依照说明书的内容予以实施,并且为了让本发明的上述和其它目的、特征和优点能够更明显易懂,以下特举本发明的具体实施方式。
附图说明
通过阅读下文优选实施方式的详细描述,各种其他的优点和益处对于本领域普通技术人员将变得清楚明了。附图仅用于示出优选实施方式的目的,而并不认为是对本发明的限制。而且在整个附图中,用相同的参考符号表示相同的部件。在附图中:
图1示出了本发明一个实施例提供的内存管理方法的流程图;
图2示出了本发明一个具体实施例提供的内存管理方法的流程图;
图3示出了代码为23224的进程在一个时间点的内存占用信息;
图4示出了本发明另一具体实施例提供的内存管理方法的流程图;以及,
图5示出了本发明实施例提供的一种内存管理装置的结构图。
具体实施方式
下面将参照附图更详细地描述本公开的示例性实施例。虽然附图中显示了本公开的示例性实施例,然而应当理解,可以以各种形式实现本公开而不应被这里阐述的实施例所限制。相反,提供这些实施例是为了能够更透彻地 理解本公开,并且能够将本公开的范围完整的传达给本领域的技术人员。
本发明实施例提供了一种内存管理方法及装置,至少能够解决现有方式中无法连续获取一段时间内的内存变化情况,因而无法根据内存的动态变化规律进行管理的技术问题。
图1示出了本发明一个实施例提供的内存管理方法的流程图。如图1所示,该方法包括:
步骤S110:对应用程序的代码段进行分析,将其中用于执行内存相关操作的函数确定为目标函数。
其中,内存相关操作包括:内存的申请、内存的创建、以及内存的销毁。
步骤S120:向目标函数中注入用于管理内存状态的挂钩函数。
具体地,该挂钩函数通过Hook机制注入到目标函数中,其能够监测目标函数的运行状态,并实现对内存状态的动态监测及管理。
步骤S130:当目标函数运行至挂钩函数所在位置时,由挂钩函数根据目标函数对应进程的进程内存映像来确定内存占用情况,并根据内存占用情况进行内存管理。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京奇虎科技有限公司;奇智软件(北京)有限公司,未经北京奇虎科技有限公司;奇智软件(北京)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201510981811.9/2.html,转载请声明来源钻瓜专利网。
- 上一篇:玩具(水磨小屋)
- 下一篇:玩具(葡萄牙海边古堡)