1.概述
在这篇简短的文章中,我们将看到JVM中各种内存大小指标之间的差异。
首先,我们将讨论自适应大小调整的工作原理,然后评估最大,已使用和已提交大小之间的差异。
2.最大尺寸和自适应大小
有两个值控制JVM堆的大小:*一个是通过-Xms 标志指定的初始值 ,另一个是由-Xmx *调整标志控制的最大值 **。
如果我们不指定这些标志,那么JVM将为其选择默认值。这些默认值取决于基础操作系统,可用RAM的数量以及JVM实现本身:
初始尺寸无论实际大小和默认值如何,堆大小都以初始大小开始。当我们分配更多对象时,堆大小可能会增加以适应该情况。但是,堆大小不能超过最大堆大小。
简而言之,最大堆大小是通过-Xmx标志指定的 大小 。另外,当我们未明确指定 -Xmx时,JVM将计算默认的max size。
3.使用尺寸
现在,让我们假设自程序启动以来我们分配了一些对象。堆大小可能会增加一点以适应新对象:
已用空间已用空间是Java对象当前占用的内存量。它始终小于或等于最大大小。
4.承诺的大小
提交的大小是Java虚拟机保证可以使用的内存量。提交的内存大小始终大于或等于已使用的大小。
5.结论
在这篇简短的文章中,我们看到了最大堆,已使用堆和已提交堆大小之间的差异。
参考
https://www.baeldung.com/java-heap-used-committed-max
https://zhanjindong.com/2016/03/02/jvm-memory-tunning-notes
网友评论