Rom*_*man 8 java memory performance jvm memory-management
测量堆中的内存应该用于创建某种类型的新对象的正确方法是什么(让我们谈谈Integers以保持简单)?
没有实验可以计算出这个值吗?那种情况下的规则是什么?这些规则是在某处严格规定的还是从jvm到jvm不等?
Thi*_*ilo 14
它可能因JVM而异.
您可能喜欢Oracle工程师发布的这篇博文:
对于32位热点JVM上的Java Integer,32位有效负载(Integer.value字段)附带96个附加位,一个标记,一个klass和一个对齐填充字,用于总共128位.此外,如果世界上有(例如)六个对此整数的引用(线程加堆),那些引用也占用192位,总共320位.在64位机器上,一切都是两倍大,至少目前是:对象中的256位(现在包括96位填充)和其他地方的384位.相比之下,未装箱的原始整数的六个副本占用192位
归档时间:
15 年,6 月 前
查看次数:
16889 次
最近记录:
13 年,7 月 前