利索能及
我要发布
收藏
专利号: 2017101288325
申请人: 东软集团股份有限公司
专利类型:发明专利
专利状态:已下证
更新日期:2025-03-03
缴费截止日期: 暂无
联系人

摘要:

权利要求书:

1.一种STW检测方法,其特征在于,包括:

获取第一对象与第二对象各自被创建时的指针地址之间的初始地址差值,其中,所述第一对象与所述第二对象分别为预先创建的强引用对象,且所述第一对象与所述第二对象各自的指针地址之间还预先创建有至少一个第三对象,所述第三对象为弱引用对象;

获取所述第一对象及所述第二对象各自的当前指针地址;

基于所述第一对象与所述第二对象各自的当前指针地址,获取所述第一对象与所述第二对象之间的当前地址差值;

将所述初始地址差值与所述当前地址差值进行比对,得到比对结果;

在所述比对结果满足预设的地址距离变化条件时,生成所述JVM中可能出现STW的检测结果。

2.根据权利要求1所述的方法,其特征在于,所述地址距离变化条件为:所述第一对象与所述第二对象之间的地址距离发生变化;

所述比对结果满足预设的地址距离变化条件,包括:

所述比对结果表明所述第一对象与所述第二对象的初始地址差值与当前地址差值比对不一致。

3.根据权利要求1所述的方法,其特征在于,所述获取所述第一对象及所述第二对象各自的当前指针地址,包括:利用JNI方法,获取所述第一对象及所述第二对象各自的当前指针地址。

4.根据权利要求1所述的方法,其特征在于,所述基于所述第一对象与所述第二对象各自的当前指针地址,获得所述第一对象与所述第二对象之间的当前地址差值,包括:将所述第二对象的当前指针地址的量值减去所述第一对象的当前指针地址的量值,得到量值减法结果;

取所述量值减法结果的绝对值作为所述第一对象与所述第二对象之间的当前地址差值。

5.一种STW检测装置,其特征在于,包括:

初始差值获取单元,用于获取第一对象与第二对象各自被创建时的指针地址之间的初始地址差值,其中,所述第一对象与所述第二对象分别为预先创建的强引用对象,且所述第一对象与所述第二对象各自的指针地址之间还预先创建有至少一个第三对象,所述第三对象为弱引用对象;

地址获取单元,用于获取所述第一对象及所述第二对象各自的当前指针地址;

当前差值获取单元,用于基于所述第一对象与所述第二对象各自的当前指针地址,获取所述第一对象与所述第二对象之间的当前地址差值;

差值比对单元,用于将所述初始地址差值与所述当前地址差值进行比对,得到比对结果;

结果生成单元,用于在所述比对结果满足预设的地址距离变化条件时,生成所述JVM中可能出现STW的检测结果。

6.根据权利要求5所述的装置,其特征在于,所述地址距离变化条件为:所述第一对象与所述第二对象之间的地址距离发生变化;

所述结果生成单元具体用于:在比对结果表明所述第一对象与所述第二对象的初始地址差值与当前地址差值比对不一致时,生成所述JVM中可能出现STW的检测结果。

7.根据权利要求5所述的装置,其特征在于,所述地址获取单元具体用于:利用JNI方法,获取所述第一对象及所述第二对象各自的当前指针地址。

8.根据权利要求5所述的装置,其特征在于,所述当前差值获取单元包括:量值计算子单元,用于将所述第二对象的当前指针地址的量值减去所述第一对象的当前指针地址的量值,得到量值减法结果;

取绝对值子单元,用于取所述量值减法结果的绝对值作为所述第一对象与所述第二对象之间的当前地址差值。

9.一种STW检测设备,其特征在于,包括:

存储器,用于存储应用程序及所述应用程序运行所产生的数据;

处理器,用于执行所述应用程序,以实现以下功能:获取第一对象与第二对象各自被创建时的指针地址之间的初始地址差值,其中,所述第一对象与所述第二对象分别为预先创建的强引用对象,且所述第一对象与所述第二对象各自的指针地址之间还预先创建有至少一个第三对象,所述第三对象为弱引用对象;获取所述第一对象及所述第二对象各自的当前指针地址;基于所述第一对象与所述第二对象各自的当前指针地址,获取所述第一对象与所述第二对象之间的当前地址差值;将所述初始地址差值与所述当前地址差值进行比对,得到比对结果;在所述比对结果满足预设的地址距离变化条件时,生成所述JVM中可能出现STW的检测结果。