的仪表接口具有getObjectSize()方法.
但是,这只会给出对象本身的大小,而不是它的组件子对象.因此,例如,它会告诉您所有String对象的大小相同.
另一个问题是物体的大小实际上可以自发地改变.例如,如果您获得对象的标识哈希码并且它在GC周期中存活,则其大小将增加(至少)4个字节以存储标识哈希码值.
找到"对象"大小的问题在于,通用实用程序类/方法不可能确定任意对象的抽象边界在哪里.有一些问题甚至像String类一样简单.(考虑使用substring(...)Java 6 创建的String对象.您是否可以将char[] value对象作为this原始String 的一部分或一部分,或两者兼而有之?这对于各个对象的大小意味着什么?)
因此,不可避免的是,诸如net.sourceforge.sizeof无法完全准确地计算空间使用情况.
| 归档时间: |
|
| 查看次数: |
5999 次 |
| 最近记录: |