我的计算机是具有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应用程序。