[发明专利]针对Shadow Memory内存泄漏检测机制的内存压缩方法在审
申请号: | 202210680494.7 | 申请日: | 2022-06-15 |
公开(公告)号: | CN115080235A | 公开(公告)日: | 2022-09-20 |
发明(设计)人: | 史晓华;郝浩 | 申请(专利权)人: | 北京航空航天大学 |
主分类号: | G06F9/50 | 分类号: | G06F9/50 |
代理公司: | 北京永创新实专利事务所 11121 | 代理人: | 周长琪 |
地址: | 100191*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 针对 shadow memory 内存 泄漏 检测 机制 压缩 方法 | ||
本发明提供了一种针对Shadow Memory内存泄漏检测机制的内存压缩方法,属于计算机应用领域。本发明方法针对对象尺寸较小带来的内存开销较大的问题,使用了对象信息模糊表示的机制——对象融合,来进行Shadow Memory内存压缩,对最小尺寸为k字节的对象,若相邻两个对象的指针相差不超过2k字节,则两对象共用一个对象标识单元;同时为了消除由此带来的对象漏报,提供了两种方案:输出补充信息,随机覆盖并结合多次运行泄漏检测的输出结果来解决对象漏报。本发明方法在泄漏检测的准确性和内存负载之间做出适当的权衡,使得泄漏检测模块的内存消耗降低一半,也减少了对泄漏对象排查的工作量,加快了泄漏检测效率。
技术领域
本发明属于计算机领域,具体是指一种针对Shadow Memory内存泄漏检测机制的内存压缩方法。
背景技术
解释型语言大多依赖运行时环境提供的垃圾回收(Garbage Collection)机制进行对象的分配和自动释放。在实际开发中,常常会因为不合理的代码设计,而出现长久不被访问的“冷”对象长期占据内存的现象,进而造成内存空间的浪费——内存泄漏。
Shadow Memory(影子内存)是针对内存泄漏问题的一个有效解决方案。虚拟机在堆栈之外额外开辟一段内存空间记录对象的访问、分配点等信息,并在创建、访问、修改、删除对象的逻辑中进行代码插桩,将访问信息存储到Shadow Memory中,再根据设定的时间间隔扫描并维护其中存储的对象访问信息,在此过程中生成可能发生泄漏的对象分配点信息。该方案能够有效检测出潜在的发生内存泄漏的对象,而且针对不同的运行时系统进行定制化开发的工作量较小,具有较强的通用性。
但是上述方案无法解决高内存负载问题。方案中使用对象在内存中的指针表示对象,并依赖此指针在Shadow Memory中检索该对象对应的访问和分配点信息,如图1所示。额外开辟的Shadow Memory占用的空间与压缩比率(运行时内存空间大小/Shadow Memory大小)直接相关,压缩比率又受到对象尺寸的限制。当对象尺寸较小时,压缩上限较低,进而消耗更大的内存空间存储对象的访问和分配点信息。对于某些内存资源紧张的设备而言,过高的内存开销是不可接受的。
发明内容
针对上述对象尺寸较小带来的潜在的内存开销较大的问题,本发明提出了一种对象信息模糊表示的机制——对象融合,实现了一种针对Shadow Memory内存泄漏检测机制的内存压缩方法,在泄漏检测的准确性和内存负载之间做出适当的权衡,解决上述问题。
本发明提供的一种针对Shadow Memory内存泄漏检测机制的内存压缩方法,实现手段包括如下:
(一)设应用场景中存储对象的最小尺寸为k字节,则当相邻两个对象的指针相差不超过2k字节时,所述两个对象共用同一个对象标识单元;
(二)使用如下两种方案消除对象漏报问题:
方案1,当出现对象覆盖现象时,对覆盖涉及的对象双方信息输出日志,作为泄漏检测模块输出的补充信息;
方案2,在不同泄漏检测周期,泄漏检测模块初始化不同的覆盖策略,为先来对象优先或后来对象优先;采用先来对象优先策略时,当出现对象覆盖现象时,将不更新对象标识单元;采用后来对象优先策略时,当出现对象覆盖现象时,更新对象标识单元为后来对象的内容;将多个不同覆盖策略的泄漏检测周期的泄漏检测模块的输出进行综合,消除对象漏报问题。
本发明的优点与积极效果在于:(1)采用本发明方法将原来1:k压缩比的shadowmemory的压缩效率提升到1:2k,使得泄漏检测模块的内存消耗降低一半;(2)采用本发明方法在减少泄漏检测模块内存消耗的基础上,能够准确检测出泄漏对象,减少了对泄漏对象排查的工作量,加快了泄漏检测效率。
附图说明
图1是Shadow Memory内存泄漏检测对象标识原理图;
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于北京航空航天大学,未经北京航空航天大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202210680494.7/2.html,转载请声明来源钻瓜专利网。