пространство кучи по умолчанию maven и размер Permgen - PullRequest
0 голосов
/ 26 марта 2019

Согласно это :

После того, как вы установили Maven в своей системе, следующим шагом будет отрегулируйте его для оптимальной производительности. По умолчанию максимальная куча Выделение составляет 256 - 512 МБ (от -Xms256m до -Xmx512m). Это ограничение по умолчанию не работает при создании большого, сложного проекта Java, и это рекомендуется иметь как минимум 1024 МБ максимальной кучи.

Теперь я думаю, что максимальные и минимальные значения пространства кучи и пространства пермгена устанавливаются JVM. Maven может установить их только с помощью переменной env MAVEN_OPTS, которая установлена ​​нами. Итак, где эти значения должны быть установлены по умолчанию maven?

Если это так, каково значение по умолчанию max, min, установленное для размера permgen maven для себя?

Я беру Java 7 и Maven 3.

1 Ответ

1 голос
/ 26 марта 2019

Сначала пространство кучи и т. Д. Устанавливаются JVM, которую вы правильно упомянули.

Кроме того, вы можете установить их для Maven через .mvn/jvm.config или, как вы уже упоминали, через MAVEN_OPTS, как уже упоминалось.

MAVEN_OPTS и, возможно, другие вещи (например, JAVA_HOME) также могут быть определены через .mavenrc, который находится в $HOME/.mavenrc (Linux / Mac) или %USERPROFILE%\mavenrc_pre.bat или %USERPROFILE%\mavenrc_pre.cmd (Windows):

Таким образом, файл .mavenrc может содержать:

export JAVA_HOME=.../jdk-11.0.1.jdk
export MAVEN_OPTS="-Djava.awt.headless=true -Xmx2g"

, иначе можно использовать файл jvm.config (расположенный в проекте в каталоге .mvn).содержать:

-Xmx2048m -Xms1024m -XX:MaxPermSize=512m -Djava.awt.headless=true

Нет значений по умолчанию, определенных Maven.Значения по умолчанию - это значения, которые определяются JVM.

Для Java 7 я бы рекомендовал не изменять PermGen, поскольку это обычно требуется, если вы развертываете в контейнеры сервлетов, такие как Tomcat или реальные серверы приложений и т. Д. Ноконечно это зависит.

Более того, цитату из книги я бы просто сказал.Просто начните с значений по умолчанию.Если мы говорим о производительности, вам следует проверить, действительно ли проблема в памяти, в которой я обычно сомневаюсь.Там, конечно, есть влияние, которое оказывает влияние, если мы говорим о сборках, которые имеют более 100 модулей в одной сборке из нескольких модулей.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...