JVM getObjectSize示例

时间:2012-07-30 09:34:12

标签: java jvm

我在获取JVM中对象的大小时遇到​​了一些麻烦。 JDK 5提供了一个Instrumentation接口来计算premain()函数,但我不知道如何使用它。

有人能帮助我吗?

4 个答案:

答案 0 :(得分:10)

最简单,最有效的解决方案是使用非常小的 sizeof

<dependency>
    <groupId>com.carrotsearch</groupId>
    <artifactId>java-sizeof</artifactId>
    <version>0.0.3</version>
</dependency>

您需要使用此http://grepcode.com/file/repo1.maven.org/maven2/com.carrotsearch/java-sizeof/0.0.2/com/carrotsearch/sizeof/RamUsageEstimator.java?av=f

shallowSizeOf()方法或 sizeOf()

到目前为止,这是我在这个主题上找到的最简单的快速解决方案......

答案 1 :(得分:1)

另一个可以帮助您的开源项目是Jamm,它也使用JVM代理。

答案 2 :(得分:0)

我们有一篇非常好的文章 Dustin Marx ,我可以推荐你。

http://java.dzone.com/articles/estimating-java-object-sizes

答案 3 :(得分:0)

您可能会发现使用MemoryMeasurer library会很有帮助,它将简单的内存测量打包成一个相对简单的API。 (或者,您可以查看其源代码以了解它如何使用检测。)