有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java JVM在启动时占用整个XMX内存

编辑:

我正在改变我的问题,使它更清楚

这是我的应用程序,在java8中使用defualt gc运行: 是的,有很多gc时间,但是,我提交的内存适合我实际使用的内存(我知道这不是期望的行为) enter image description here

现在,让我们看看在设置G1 gc时会发生什么: enter image description here

您可以看到提交的内存比使用的内存大得多

您可能想知道在第一次执行和第二次执行之间发生了什么变化: 第一个是JVM_参数:-Xms1024m -Xmx20048m -XX:MaxGCPauseMillis=100

第二个:-XX:+UseG1GC -Xms1024m -Xmx20048m -XX:MaxGCPauseMillis=100 -XX:+UseStringDeduplication

我已经读了很多关于G1 GC的书,但是,我不明白为什么这个简单的改变,使我的记忆表现如此不同


共 (1) 个答案

  1. # 1 楼答案

    this document from Oracle-Xmx中所述,设置jvm的最大可用内存和-Xms初始内存,因此根据您的值,jvm在stat up时使用1024mb,在运行时使用4096m。因此,该设置更像是一个限制,而不是一个消耗值
    把它比作一个桶:如果它能装10升,你不必往这个桶里装10升,你也可以只装2升