我在获取 JVM 中对象的大小时遇到了一些麻烦。JDK 5 提供了一个Instrumentation
通过premain()
函数计算的接口,但我不知道如何使用它。
有谁能够帮助我?
最简单和最有效的解决方案是使用非常小的sizeof库
<dependency>
<groupId>com.carrotsearch</groupId>
<artifactId>java-sizeof</artifactId>
<version>0.0.3</version>
</dependency>
shallowSizeOf()方法或sizeOf()
到目前为止,这确实是我在这个主题上找到的最简单的快速解决方案......
另一个可能对您有所帮助的开源项目是Jamm,它也使用了 JVM 代理。
在这里,我们有一篇非常好的达斯汀马克思的文章,我可以参考你。
您可能会发现使用MemoryMeasurer 库很有帮助,它将简单的内存测量打包到一个相对简单的 API 中。(或者,您可以查看它的源代码以了解它如何使用检测。)