基于文档:https://docs.oracle.com/javase/7/docs/api/java/lang/management/MemoryUsage.html
committed-表示保证可以由Java虚拟机使用的内存量(以字节为单位)。提交的内存量可能会随时间变化(增加或减少)。 Java虚拟机可能会向系统释放内存,并且提交的空间可能少于init。已提交将始终大于或等于已使用。
但是问题是JVM如何计算已提交的内存?
答案 0 :(得分:1)
在这里您可以找到更多细节,但是它并不能解释增加承诺堆空间的确切方法:
还有一个已承诺的堆大小,它的作用是“ 标记”,一旦JVM无法释放空间,即使在旧版本上也无法移动 收藏/年轻收藏腾出空间。 在这种情况下, 承诺堆大小增加。重复此循环,直到 已提交的堆大小与最大堆大小,最大空间匹配 可分配的。
https://support.mulesoft.com/s/article/Java-JVM-memory-allocation-pattern-explained