gpt4 book ai didi

java - 内存分析器

转载 作者:行者123 更新时间:2023-11-30 11:44:24 25 4
gpt4 key购买 nike

需要创建我们自己的 Java 分析器。 CPU 分析部分是在 IBM 的构建您自己的分析器文章的帮助下完成的。现在也在检查类似类型的内存分析。在搜索中找到了 Hprof,但它对我没有用。我想要的是获取类中每个方法消耗的内存(以字节为单位)

例如:

考虑一个类 test1 ,类 test2 等在 java 文件中

method1() 出现在 test1 中

method2() 出现在 test2 中

许多变量将在每个方法中声明所以我想要的是这样的

test1/method1 = 12 字节(如果可能的话显示跟踪,即它是如何像这么多字符 + 整数数量等一样)

test2/method2 = 18bytes

请帮忙

最佳答案

如果您对给定方法占用多少内存堆栈感兴趣,那么有two attributes in the class files提供这方面的信息:

max_locals 告诉您为局部变量保留了多少空间(以 32 位为增量,即乘以 4 以获得字节数)。

max_stack 告诉您在执行此方法期间操作数堆栈可以增长到的最大数。

将这两个相加会给您一个粗略估计如果您调用此方法堆栈将增长多少。除了这些值之外,还会有额外的(可能是恒定的)开销,但这些应该是主要的可变因素。

您可以使用字节码操作库,例如 BCEL读取 .class 文件并提取这些属性。

关于java - 内存分析器,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10794627/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com