Мой компьютер - Mac с 8 ядрами и 16G памяти. Я использую функции, чтобы проверить, сколько памяти я могу предоставить 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 я установил JVM с -Xmx = 8G
Available processors (cores): 8
Free memory (bytes): 579
Maximum memory (bytes): 7635
Total memory (bytes): 1874
Максимальная память увеличилась соответственно, но почему «свободная память» и «общая память» значительно не увеличились? Мне нужно увеличить размер кучи для моего приложения.
И второй вопрос, связанный с тем, как установить размер кучи в проекте Spring-boot. В поме я установил следующее:
<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.