[发明专利]一种基于执行索引和访问路径的堆区对象比较方法有效
| 申请号: | 201610158676.2 | 申请日: | 2016-03-21 |
| 公开(公告)号: | CN105824758B | 公开(公告)日: | 2018-09-21 |
| 发明(设计)人: | 刘锐奇;顾天晓;马晓星;曹春 | 申请(专利权)人: | 南京大学 |
| 主分类号: | G06F11/36 | 分类号: | G06F11/36 |
| 代理公司: | 南京知识律师事务所 32207 | 代理人: | 张苏沛 |
| 地址: | 210046 江苏*** | 国省代码: | 江苏;32 |
| 权利要求书: | 查看更多 | 说明书: | 查看更多 |
| 摘要: | 本发明公开了一种基于执行索引和访问路径的堆区对象比较方法,它包含以下步骤:指定一对匹配的程序执行点,以不同的输入执行同一版本程序(或者以同一输入执行不同版本的程序),在匹配的程序执行点捕获相应的堆区快照;赋予每一个快照中每一个对象一个ID;通过ID将不同快照中的对象进行匹配并递归比较匹配的对象;根据匹配结果,生成差异性度量表。本发明与现有的技术相比,其显著优点是:本发明通过结合两种不同的基本匹配算法,克服了访问路径匹配算法中不能有效匹配数组元素的问题,能够更高效、准确的进行对象比较分析。 | ||
| 搜索关键词: | 一种 基于 执行 索引 访问 路径 对象 比较 方法 | ||
【主权项】:
1.一种基于执行索引和访问路径的堆区对象比较方法,其特征在于,它包含以下步骤:步骤一、指定一对匹配的程序执行点,以同一输入执行不同版本的程序,或者以不同的输入执行同一版本的程序,在匹配的程序执行点捕获相应的堆区快照;步骤二、赋予每一个快照中每一个对象一个ID;步骤三、通过ID将不同快照中的对象进行匹配,比较匹配的对象,从而获得每对快照的差异性度量值;所述步骤一中获取堆区快照的步骤包括:步骤1.1 指定匹配点的Call String;步骤1.2 通过代码插桩框架在方法的入口插入构建并检测Call String的代码,同时记录每个对象创建时的Call String;步骤1.3 执行插桩后的程序,若检测到匹配的Call String,则生成堆区快照;上述步骤1.2 中构建和检测Call String,记录对象创建的代码执行过程如下:步骤1.2.1 初始化调用树,从程序的主线程入口开始记录;步骤1.2.2 在每一个函数的入口,都记录下当前方法的ID、调用该方法的指令,以及它的执行次数;步骤1.2.3 当拦截到新的对象创建时,生成该对象对应执行点的Call String,并记录到该对象中,同时保存到一个全局的哈希表中;步骤1.2.4 当检测到执行点的Call String与匹配点的Call String相同时,就生成当前堆区的快照。
下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于南京大学,未经南京大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/patent/201610158676.2/,转载请声明来源钻瓜专利网。
- 上一篇:防泄吸顶通风器
- 下一篇:自然新风旋转开关装置





