美文网首页
JDK 1.8 jvm 不同参数设置下对比

JDK 1.8 jvm 不同参数设置下对比

作者: 小蓝田 | 来源:发表于2023-03-02 09:37 被阅读0次

情形一

设置参数-Xms1024m -Xmx1024m -XX:MetaspaceSize=256m -XX:MaxMetaspaceSize=256m
通过命令jmap -heap 27298查看 jvm 内存使用情况

image.png
  • 没设置-XX:NewSize-XX:MaxNewSize,默认二者相等,即图中 b = c
  • a = b + d,即:堆区 = 新生代 + 老年代
  • e = 2,老年代 : 新生代 = 2 :1,即图中 d : b = 2 : 1
  • g = h = 256,与设置参数中-XX:MetaspaceSize=256m -XX:MaxMetaspaceSize=256m一致
  • f = 8,但 k : n : m != 8 : 1 : 1

情形二

设置参数-Xms1024m -Xmx1024m -XX:MetaspaceSize=256m -XX:MaxMetaspaceSize=256m -XX:-UseAdaptiveSizePolicy

image.png
  • 参数中设置了 -XX:-UseAdaptiveSizePolicy,但是 k : n : m != 8 : 1 : 1

HotSpot VM里,ParallelScavenge系的GC(UseParallelGC / UseParallelOldGC)默认行为是SurvivorRatio如果不显式设置就没啥用。显式设置到跟默认值一样的值则会有效果。
因为ParallelScavenge系的GC最初设计就是默认打开AdaptiveSizePolicy的,它会自动、自适应的调整各种参数。

通过命令jinfo -flags pid 查看默认配置的 GC 算法,发现为UseParallelGC

image.png

情形三

设置参数-Xms1024m -Xmx1024m -XX:MetaspaceSize=256m -XX:MaxMetaspaceSize=256m -XX:SurvivorRatio=8

image.png
  • 参数中设置了 -XX:SurvivorRatio=8, k : n : m = 8 : 1 : 1

情形四

设置参数-Xms1024m -Xmx1024m -XX:MetaspaceSize=256m -XX:MaxMetaspaceSize=256m -XX:SurvivorRatio=8 -XX:-UseAdaptiveSizePolicy

image.png
  • 参数中设置了 -XX:SurvivorRatio=8 -XX:-UseAdaptiveSizePolicy, k : n : m = 8 : 1 : 1

相关文章

网友评论

      本文标题:JDK 1.8 jvm 不同参数设置下对比

      本文链接:https://www.haomeiwen.com/subject/epzrldtx.html