1. 概述
在这篇简短的文章中,我们将了解JVM中各种内存大小指标之间的差异。
首先,我们将讨论自适应大小的工作原理,然后我们将评估最大大小、已使用大小和已提交大小之间的差异。
2. 最大大小和自适应大小
两个值控制JVM堆的大小:一个通过-Xms标志指定的初始值,另一个由-Xmx调整标志控制的最大值。
如果我们不指定这些标志,那么JVM将为它们选择默认值。这些默认值取决于底层操作系统、可用RAM量,当然还有JVM实现本身:
无论实际大小和默认值如何,堆大小都以初始大小开始。当我们分配更多对象时,堆大小可能会增长以适应它。但是,堆大小不能超过最大堆大小。
简而言之,最大堆大小是通过-Xmx标志指定的大小。此外,当我们没有明确指定-Xmx时,JVM会计算默认的最大大小。
3. 使用大小
现在,假设我们在程序启动后分配了一些对象,堆大小可能会稍微增大以容纳新对象:
已用空间是Java对象当前占用的内存量,它始终小于或等于最大大小。
4. 已提交大小
已提交大小是保证可供Java虚拟机使用的内存量,已提交内存大小始终大于或等于已使用大小。
5. 总结
在这篇简短的文章中,我们了解了最大堆大小、已用堆大小和已提交堆大小之间的区别。
Show Disqus Comments
Post Directory
扫码关注公众号:Taketoday
发送 290992
即可立即永久解锁本站全部文章
