【问题标题】:JVM initial heap memory allocation [duplicate]JVM初始堆内存分配[重复]
【发布时间】:2020-12-07 04:26:55
【问题描述】:

我已将 -Xms 和 -Xmx 值指定为相同的 4GB。现在,当我启动我的 spring-boot 应用程序时,我假设操作系统将在启动应用程序后立即分配 4GB 内存,因为这是使用 -Xms 参数指定的值。但是当我检查应用程序的驻留集和堆内存(使用 JMX)时,我可以看到分配的内存仍然小于 1GB。这是否意味着操作系统不一定分配使用 -Xms 指定的内存。

提前致谢。

【问题讨论】:

    标签: memory jvm jvm-arguments


    【解决方案1】:

    您没有说哪个操作系统和哪个 JVM 供应商/版本,但操作系统通常会懒惰地分配页面,也就是说,除非需要,否则它们不在 RAM(“常驻”)中。如果您的应用程序实际上不需要该堆内存,则它不会驻留。还有一个“自适应大小策略”,如果占用率太低,甚至可能会缩小到“-Xms”以下:https://docs.oracle.com/javase/8/docs/technotes/guides/vm/gc-ergonomics.html

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2014-07-19
      • 2014-02-11
      • 1970-01-01
      • 2013-07-27
      • 2016-06-01
      相关资源
      最近更新 更多