美文网首页
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