maven 默认堆 space 和 Permgen 大小
maven default heap space and Permgen size
根据this:
Once you have installed Maven in your system, the next step is to
fine-tune it for optimal performance. By default, the maximum heap
allocation is 256 - 512 MB (-Xms256m to -Xmx512m). This default limit
does not work while building a large, complex Java project, and it is
recommended that you have at least 1024 MB of maximum heap.
现在,我认为堆 space 和 permgen space 最大值和最小值是由 JVM 设置的。 Maven 只能通过我们设置的 MAVEN_OPTS env 变量来设置它们。那么,maven 在哪里将这些值设置为默认值?
如果那是真的,那么 maven 为自身设置的 permgen 大小的默认最大、最小值是多少?
我正在使用 Java 7 和 maven 3。
首先,堆 space 等由您正确提到的 JVM 设置。
此外,您可以将它们设置为 Maven via .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 或真正的应用程序服务器等 servlet 容器中,这通常是需要的。但这当然要视情况而定。
此外,我想简单地说一下书中的引述。只需从默认值开始。如果我们谈论的是性能,您应该真正检查问题是否真的出在我通常怀疑的内存上。如果我们谈论的是在单个多模块构建中包含 100 多个模块的构建,那当然会有影响。
根据this:
Once you have installed Maven in your system, the next step is to fine-tune it for optimal performance. By default, the maximum heap allocation is 256 - 512 MB (-Xms256m to -Xmx512m). This default limit does not work while building a large, complex Java project, and it is recommended that you have at least 1024 MB of maximum heap.
现在,我认为堆 space 和 permgen space 最大值和最小值是由 JVM 设置的。 Maven 只能通过我们设置的 MAVEN_OPTS env 变量来设置它们。那么,maven 在哪里将这些值设置为默认值?
如果那是真的,那么 maven 为自身设置的 permgen 大小的默认最大、最小值是多少?
我正在使用 Java 7 和 maven 3。
首先,堆 space 等由您正确提到的 JVM 设置。
此外,您可以将它们设置为 Maven via .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 或真正的应用程序服务器等 servlet 容器中,这通常是需要的。但这当然要视情况而定。
此外,我想简单地说一下书中的引述。只需从默认值开始。如果我们谈论的是性能,您应该真正检查问题是否真的出在我通常怀疑的内存上。如果我们谈论的是在单个多模块构建中包含 100 多个模块的构建,那当然会有影响。