如何理解JVM中的那些内存编号?

时间:2018-11-03 18:20:53

标签: java maven spring-boot spring-boot-maven-plugin

我的计算机是具有8核和16G内存的Mac。我正在使用这些功能来测试可以为应用程序提供给JVM的内存量。

System.out.println(Runtime.getRuntime().availableProcessors());          
System.out.println(Runtime.getRuntime().freeMemory()/(1000*1000));
System.out.println(Runtime.getRuntime().maxMemory()/(1000*1000)));
System.out.println(Runtime.getRuntime().totalMemory()/(1000*1000));

使用默认堆大小,我打印出:

Available processors (cores): 8
Free memory (bytes): 915
Maximum memory (bytes): 3817
Total memory (bytes): 1955

现在在Intellij中,我使用-Xmx = 8G设置JVM

Available processors (cores): 8
Free memory (bytes): 579
Maximum memory (bytes): 7635
Total memory (bytes): 1874

最大内存相应地增加了,但是为什么“可用内存”和“总内存”却没有显着增加?我需要增加应用程序的堆大小。

第二个问题与如何在Spring-boot项目中设置堆大小有关。在pom中,我设置了以下内容:

<plugin>
                <groupId>org.apache.maven.plugins</groupId>
                <artifactId>maven-compiler-plugin</artifactId>
                <version>3.5</version>
                <configuration>
                    <source>${jdk.version}</source>
                    <target>${jdk.version}</target>
                    <encoding>${project.build.sourceEncoding}</encoding>
                    <meminitial>1024m</meminitial>
                    <maxmem>6048m</maxmem>
                </configuration>
            </plugin>

我使用上面代码中的相同功能打印出了内存编号,内存设置“ 6048m”完全不变。看来设置没有任何作用。这是为什么?这是一个Spring-boot应用程序。

0 个答案:

没有答案