System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。 参数名: length 在 System.String.Substring(Int32 startIndex, Int32 length) 在 zhuanliShow.Bind() 对象分配定位方法、装置、存储介质及电子设备制造方法及图纸_技高网

对象分配定位方法、装置、存储介质及电子设备制造方法及图纸

技术编号:40228849 阅读:5 留言:0更新日期:2024-02-02 22:31
本发明专利技术提供一种对象分配定位方法、装置、存储介质及电子设备,其中,该方法包括:基于采集指示信息,分别对M个类中各个类所对应的对象进行N次内存使用量采集,得到各个类对应的N个内存使用量;分别对各个类对应的N个内存使用量进行加权求和,得到各个类的类排序指示信息,并基于各个类的类排序指示信息,从M个类中选取出至少一个目标类;分别将对象创建监控嵌码,嵌入至至少一个目标类包括的各个目标类中,得到各个嵌码后的目标类;分别基于各个嵌码后的目标类对应的调用栈集合,生成各个嵌码后的目标类对应的对象分配指示数据,一个对象分配指示数据用于实现相应嵌码后的目标类下的对象分配定位。本发明专利技术实施例可便捷地进行对象分配定位。

【技术实现步骤摘要】

本专利技术涉及计算机,尤其涉及一种对象分配定位方法、装置、存储介质及电子设备


技术介绍

1、目前,jvm(java virtual machine,java(一种面向对象的编程语言)虚拟机)对象高速率分配问题已受到广泛关注,jvm对象高速率分配问题是指在java应用程序中频繁地创建和销毁对象,而导致内存管理开销较高的情况;这种情况可能会导致应用程序的性能下降,因为频繁的对象分配和垃圾回收(garbage collection,gc)操作会占用大量的cpu(central processing unit,中央处理器)时间,并且会stop the word(stw,停顿),增加应用响应时间,降低应用吞吐率,并增加了不必要的内存开销。基于此,现有技术通常在通过大量数据观察出可能存在对象高速率分配内存问题,且问题继续发生的时候,打内存dump(转储文件),并分析该次内存dump的栈分配信息和存活对象信息来定位问题,且存在信息数据不足或人工介入不及时等问题(如已被垃圾回收后才打内存转储文件),需要多次打内存转储文件、多次查看才能降低问题根因定位的误判,导致对象分配定位过程较为繁琐。基于此,如何便捷地进行对象分配定位成为一个研究热点。


技术实现思路

1、有鉴于此,本专利技术实施例提供了一种对象分配定位方法、装置、存储介质及电子设备,以解决对象分配定位过程较为繁琐的问题;也就是说,本专利技术实施例可便捷地进行对象分配定位,即可便捷地生成对象分配指示数据,从而通过任一对象分配指示数据实现相应嵌码后的目标类下的对象分配定位。

2、根据本专利技术的一方面,提供了一种对象分配定位方法,所述方法包括:

3、获取采集指示信息,并基于所述采集指示信息,分别对m个类中各个类所对应的对象进行n次内存使用量采集,得到所述各个类对应的n个内存使用量,m和n均为正整数;

4、分别对所述各个类对应的n个内存使用量进行加权求和,得到所述各个类的类排序指示信息,并基于所述各个类的类排序指示信息,从所述m个类中选取出至少一个目标类,一个目标类的类排序指示信息大于排序指示阈值;

5、确定对象创建监控嵌码,并分别将所述对象创建监控嵌码,嵌入至所述至少一个目标类包括的各个目标类中,得到各个嵌码后的目标类,一个嵌码后的目标类被调用以创建对象时支持生成相应的调用栈,一个调用栈用于指示相应对象的调用链路;

6、确定所述各个嵌码后的目标类在目标时间范围内的调用栈集合,并分别基于所述各个嵌码后的目标类对应的调用栈集合,生成所述各个嵌码后的目标类对应的对象分配指示数据,一个对象分配指示数据用于实现相应嵌码后的目标类下的对象分配定位。

7、根据本专利技术的另一方面,提供了一种对象分配定位装置,所述装置包括:

8、获取单元,用于获取采集指示信息;

9、处理单元,用于基于所述采集指示信息,分别对m个类中各个类所对应的对象进行n次内存使用量采集,得到所述各个类对应的n个内存使用量,m和n均为正整数;

10、所述处理单元,还用于分别对所述各个类对应的n个内存使用量进行加权求和,得到所述各个类的类排序指示信息,并基于所述各个类的类排序指示信息,从所述m个类中选取出至少一个目标类,一个目标类的类排序指示信息大于排序指示阈值;

11、所述处理单元,还用于确定对象创建监控嵌码,并分别将所述对象创建监控嵌码,嵌入至所述至少一个目标类包括的各个目标类中,得到各个嵌码后的目标类,一个嵌码后的目标类被调用以创建对象时支持生成相应的调用栈,一个调用栈用于指示相应对象的调用链路;

12、所述处理单元,还用于确定所述各个嵌码后的目标类在目标时间范围内的调用栈集合,并分别基于所述各个嵌码后的目标类对应的调用栈集合,生成所述各个嵌码后的目标类对应的对象分配指示数据,一个对象分配指示数据用于实现相应嵌码后的目标类下的对象分配定位。

13、根据本专利技术的另一方面,提供了一种电子设备,所述电子设备包括处理器、以及存储程序的存储器,其中,所述程序包括指令,所述指令在由所述处理器执行时使所述处理器执行上述所提及的方法。

14、根据本专利技术的另一方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,所述计算机指令用于使计算机执行上述所提及的方法。

15、本专利技术实施例可获取采集指示信息,并基于采集指示信息,分别对m个类中各个类所对应的对象进行n次内存使用量采集,得到各个类对应的n个内存使用量,m和n均为正整数。然后,可分别对各个类对应的n个内存使用量进行加权求和,得到各个类的类排序指示信息,并基于各个类的类排序指示信息,从m个类中选取出至少一个目标类,一个目标类的类排序指示信息大于排序指示阈值;进一步的,可确定对象创建监控嵌码,并分别将对象创建监控嵌码,嵌入至至少一个目标类包括的各个目标类中,得到各个嵌码后的目标类,一个嵌码后的目标类被调用以创建对象时支持生成相应的调用栈,一个调用栈用于指示相应对象的调用链路。基于此,可确定各个嵌码后的目标类在目标时间范围内的调用栈集合,并分别基于各个嵌码后的目标类对应的调用栈集合,生成各个嵌码后的目标类对应的对象分配指示数据,一个对象分配指示数据用于实现相应嵌码后的目标类下的对象分配定位。可见,本专利技术实施例可便捷地生成对象分配指示数据,从而通过任一对象分配指示数据便捷地实现对象分配定位,也就是说,本专利技术实施例可便捷地进行对象分配定位,即可实现代码级别的问题根因自动定位。

本文档来自技高网...

【技术保护点】

1.一种对象分配定位方法,其特征在于,包括:

2.根据权利要求1所述的方法,其特征在于,所述各个类对应的N个内存使用量与P个时段相对应,P为正整数;所述方法还包括:

3.根据权利要求2所述的方法,其特征在于,所述基于所述各个时段内的对象分配速度,判断所述各个类对应的N个内存使用量是否置信,包括:

4.根据权利要求1-3任一项所述的方法,其特征在于,所述方法还包括:

5.根据权利要求4所述的方法,其特征在于,任一时段内的对象分配速度的获取方式包括:

6.根据权利要求1-3任一项所述的方法,其特征在于,所述采集指示信息用于指示对象直方图的采集规则,所述基于所述采集指示信息,分别对M个类中各个类所对应的对象进行N次内存使用量采集,得到所述各个类对应的N个内存使用量,包括:

7.根据权利要求1-3任一项所述的方法,其特征在于,一个对象分配指示数据为相应嵌码后的目标类对应的火焰图数据,且一个火焰图数据用于反映至少一段代码中各段代码调用相应嵌码后的目标类以创建对象的次数。

8.根据权利要求1-3任一项所述的方法,其特征在于,所述方法还包括:

9.一种对象分配定位装置,其特征在于,所述装置包括:

10.一种电子设备,其特征在于,包括:

11.一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使计算机执行根据权利要求1-8中任一项所述的方法。

...

【技术特征摘要】

1.一种对象分配定位方法,其特征在于,包括:

2.根据权利要求1所述的方法,其特征在于,所述各个类对应的n个内存使用量与p个时段相对应,p为正整数;所述方法还包括:

3.根据权利要求2所述的方法,其特征在于,所述基于所述各个时段内的对象分配速度,判断所述各个类对应的n个内存使用量是否置信,包括:

4.根据权利要求1-3任一项所述的方法,其特征在于,所述方法还包括:

5.根据权利要求4所述的方法,其特征在于,任一时段内的对象分配速度的获取方式包括:

6.根据权利要求1-3任一项所述的方法,其特征在于,所述采集指示信息用于指示对象直方图的采集规则,所述基于所述采集指示信息,分别对m...

【专利技术属性】
技术研发人员:杜中原
申请(专利权)人:北京基调网络股份有限公司
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1