gpt4 book ai didi

java - 如何有效地确定java对象在内存中的大小?

转载 作者:太空宇宙 更新时间:2023-11-04 08:23:59 25 4
gpt4 key购买 nike

我正在使用 lru 缓存,它对内存使用大小有限制。 lru缓存包括两种数据结构: HashMap 和链表。 HashMap 保存缓存对象,链表保存缓存对象访问顺序的记录。为了确定java对象内存使用情况,我使用了一个开源工具——Classmexer agent 这是一个简单的 Java 检测代理,位于 http://www.javamex.com/classmexer/ .

我尝试另一个名为 SizeOf 的工具 http://sizeof.sourceforge.net/ .

问题是性能非常昂贵。测量物体尺寸的一次操作的时间成本约为 1.3 秒,非常非常慢。这会使缓存的好处为零。

是否有其他解决方案来测量 java 对象存活时的内存大小?

谢谢。

最佳答案

获取准确的字节值会很昂贵,因为它需要使用反射来获取嵌套大小,但这是可以做到的。

In Java, what is the best way to determine the size of an object?

http://docs.oracle.com/javase/7/docs/api/java/lang/instrument/Instrumentation.html

关于java - 如何有效地确定java对象在内存中的大小?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8974656/

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