[发明专利]一种监控内存泄漏的方法及装置有效
申请号: | 201310195512.3 | 申请日: | 2013-05-23 |
公开(公告)号: | CN104182320B | 公开(公告)日: | 2017-09-29 |
发明(设计)人: | 李彬;罗静 | 申请(专利权)人: | 联想(北京)有限公司 |
主分类号: | G06F11/30 | 分类号: | G06F11/30 |
代理公司: | 北京同达信恒知识产权代理有限公司11291 | 代理人: | 黄志华 |
地址: | 100085 *** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 监控 内存 泄漏 方法 装置 | ||
技术领域
本发明涉及电子技术领域,尤其涉及一种监控内存泄漏的方法及装置。
背景技术
现有技术中,使用JAVA语言在Android系统上开发应用程序时,如果使用不当,很容易发生内存泄漏,在计算机科学中,内存泄漏(memory leak)指由于疏忽或错误造成程序未能释放已经不再使用的内存的情况。内存泄漏并非指内存在物理上的消失,而是应用程序分配某段内存后,由于设计错误,失去了对该段内存的控制,因而造成了内存的浪费。内存泄漏与许多其他问题有着相似的症状,并且通常情况下只能由那些可以获得程序源代码的程序员才可以分析出来。然而,有不少人习惯于把任何不需要的内存使用的增加描述为内存泄漏,严格意义上来说这是不准确的。
一般常说的内存泄漏是指堆内存的泄漏。堆内存是指程序从堆中分配的,大小任意的(内存块的大小可以在程序运行期决定),使用完后必须显式释放的内存。应用程序一般使用malloc,calloc,realloc等函数(C++中使用new操作符)从堆中分配到一块内存,使用完后,程序必须负责相应的调用free或delete释放该内存块,否则,这块内存就不能被再次使用,这就说这块内存泄漏了。
Android系统的JVM提供了垃圾收集器(Garbage Collection,GC)自动管理内存的回收,程序员不需要通过调用函数来释放内存。因此,很多程序员认为Java不存在内存泄漏问题,或者认为即使有内存泄漏也不是程序的责任,而是GC或JVM的问题。其实,这种想法是不正确的,因为Java也存在内存泄漏,但它的表现与C++不同。如果正在开发的Java代码要全天24小时在服务器上运行,则内存漏洞在此处的影响就比在配置实用程序中的影响要大得多,即使最小的漏洞也会导致JVM耗尽全部可用内存。另外,在很多嵌入式系统中,内存的总量非常有限。在相反的情况下,即便程序的生存期较短,如果存在分配大量临时对象(或者若干吞噬大量内存的对象)的任何Java代码,而且当不再需要这些对象时也没有取消对它们的引用,则仍然可能达到内存极限。
虽然JVM提供了GC机制可一定程度防止内存泄露,但还是不能完全避免,一旦发生泄漏,会导致应用终止,甚至系统崩溃。
针对现有技术中GC机制下还是存在内存泄露的问题,现有提供的解决方案为:使用android提供的DDMS(Dalvik Debug Monitor Service,是Android开发环境中的Dalvik虚拟机调试监控服务)或者MAT内存分析工具。但是该方案仍然存在一些缺点如:必须连线调试,使用PC机连接手机监控内存变化,而内存泄漏可能发生在某些特定场景的操作下,比如自由测试的情况,因此连线时无法抓住这些特定操作的情况,错过发现内存泄漏问题的场景。
另外,DDMS涉及较专业的操作流程,所以需要具有很强的专业技术知识才能灵活应用,所以导致操作不便。
发明内容
本发明提供一种监控内存泄漏的方法及装置,本发明所提供的方法和装置解决现有技术中内存泄露检测无法确定出现内存泄露问题时的特定操作情况,错过发现内存泄漏问题的场景的问题。
针对上述问题本发明提供一种监控内存泄漏的方法,该方法应用于一电子设备中,该方法包括:
监测用户针对一应用程序的用户界面操作信息,并存储监测到的用户界面操作信息;
监控系统内存使用情况,得到系统的内存信息;
从所述内存信息中获取标示所述一应用程序内存使用情况的关键字段值,并将所述关键字段值与第一预设阈值进行比较,得到第一比较结果;
若所述第一比较结果为所述关键字段值大于所述第一预设阈值,则确定发生了内存泄露,则利用所述用户界面操作信息和所述内存信息生成一报警信息;
接收到一触发信息后,输出所述报警信息。
更优化的方案,存储监测到的用户界面操作信息包括:
检测已存储的用户界面操作次数是否超过第二阈值,如果是,则利用新监测到用户界面操作信息覆盖已存储的用户界面操作信息。
更优化的方案,利用新监测到用户界面操作信息覆盖已存储的用户界面操作信息包括:
确定已存储的每个用户界面操作信息所对应的存储时间;
利用新监测到的用户界面操作信息更新距离当前时间最远的用户界面操作所对应的用户界面操作信息。
更优化的方案,所述用户界面操作信息包括操作控件动作信息、用户在对话框中输入的字符串信息。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于联想(北京)有限公司,未经联想(北京)有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201310195512.3/2.html,转载请声明来源钻瓜专利网。
- 上一篇:刷子制造机
- 下一篇:具有用以照明处于不同距离上的组织的多个源的体内相机