算法(4th ed)(188):基础——算法分析 6.9.1

阅读数:13 2019 年 11 月 9 日 15:38

算法(4th ed)(188):基础——算法分析 6.9.1

(内存:对象)

要知道一个对象所使用的内存量,需要将所有实例变量使用的内存与对象本身的开销(一般是 16 字节)相加。这些开销包括一个指向对象的类的引用、垃圾收集信息以及同步信息。另外,一般内存的使用都会被填充为 8 字节(64 位计算机中的机器字)的倍数。例如,一个 Integer 对象会使用 24 字节(16 字节的对象开销,4 字节用于保存它的 int 值以及 4 个填充字节)。类似地,一个Date 对象(请见表 1.2.12)需要使用 32 字节:16 字节的对象开销,3 个 int 实例变量各需 4 字节,以及 4 个填充字节。对象的引用一般都是一个内存地址,因此会使用 8 字节。例如,一个Counter 对象(请见表 1.2.11)需要使用 32 字节:16 字节的对象开销,8 字节用于它的 String 型实例变量(一个引用),4 字节用于 int 实例变量,以及 4 个填充字节。当我们说明一个引用所占的内存时,我们会单独说明它所指向的对象所占用的内存,因此这个内存使用总量并没有包含 String 值所使用的内存。常见对象的内存需求列在了图 1.4.8 中。

算法(4th ed)(188):基础——算法分析 6.9.1

图 1.4.8 典型对象的内存需求

评论

发布