了解JVM中的对象开销
我正在研究java,我记得在某个地方读过java对象,在JVM中有一些开销,这是由虚拟机用于管理的原因。 所以我的问题是,有人可以告诉我是否以及如何在HotSpot JVM中获取对象的总大小,以及它可能带来的任何开销?
你无法直接获得开销。 开销量取决于实现,并且可能因许多因素而异(例如,精确的JVM版本,以及您是使用32位还是64位JVM)。
但是,假设在像HotSpot这样的典型现代JVM实现中,每个对象的开销在8到16个字节之间是相当安全的。 数组的开销通常比其他对象大4个字节(包含整数数组长度)。
也可以看看:
- 在Java中,确定对象大小的最佳方法是什么?
- Java对象的内存使用情况:一般指南
我发现这篇文章相当有用,尽管我对表中提到的一些值有些怀疑