JVM如何计算已提交的堆内存?

时间:2018-11-14 09:08:37

标签: java heap-memory

基于文档:https://docs.oracle.com/javase/7/docs/api/java/lang/management/MemoryUsage.html

committed-表示保证可以由Java虚拟机使用的内存量(以字节为单位)。提交的内存量可能会随时间变化(增加或减少)。 Java虚拟机可能会向系统释放内存,并且提交的空间可能少于init。已提交将始终大于或等于已使用。

但是问题是JVM如何计算已提交的内存?

1 个答案:

答案 0 :(得分:1)

在这里您可以找到更多细节,但是它并不能解释增加承诺堆空间的确切方法:

  

还有一个已承诺的堆大小,它的作用是“   标记”,一旦JVM无法释放空间,即使在旧版本上也无法移动   收藏/年轻收藏腾出空间。 在这种情况下,   承诺堆大小增加。重复此循环,直到   已提交的堆大小与最大堆大小,最大空间匹配   可分配的。

https://support.mulesoft.com/s/article/Java-JVM-memory-allocation-pattern-explained