JVM 调优

JDK配置

1
-Xms512m -Xmx1024m -XX:PermSize=256M -XX:MaxPermSize=512M -Dmaven.multiModuleProjectDirectory=$M2_HOME
1
2
3
4
-Xms512m JVM初始分配的堆内存
-Xmx1024m JVM最大允许分配的堆内存,按需分配
-XX:PermSize=256M JVM初始分配的非堆内存
-XX:MaxPermSize=512M JVM最大允许分配的非堆内存,按需分配
参数名 含义 默认值 备注
-Xms 初始堆大小 物理内存的1/64(<1GB) 默认(MinHeapFreeRatio参数可以调整)空余堆内存小于40%时,JVM就会增大堆直到-Xmx的最大限制。
-Xmx 最大堆大小 物理内存的1/4(<1GB) 默认(MaxHeapFreeRatio参数可以调整)空余堆内存大于70%时,JVM会减少堆直到 -Xms的最小限制。
-Xmn 年轻代大小(1.4or lator) 注意:此处的大小是(eden+ 2 survivor space),与jmap -heap中显示的New gen是不同的。整个堆大小=年轻代大小 + 年老代大小 + 持久代大小。增大年轻代后,将会减小年老代大小,此值对系统性能影响较大,Sun官方推荐配置为整个堆的3/8。
-XX:NewSize 设置年轻代大小(for 1.3/1.4) -
-XX:MaxNewSize 年轻代最大值(for 1.3/1.4) -
-XX:PermSize 设置持久代(perm gen)初始值 物理内存的1/64 -
-XX:MaxPermSize 设置持久代最大值 物理内存的1/4 -

Tomcat配置

编辑TOMCAT_HOME/bin/catalina.bat,在第二行中插入如下配置:

1
set JAVA_OPTS=-server -Xms1024m -Xmx1024m -XX:PermSize=64M -XX:MaxNewSize=512m -XX:MaxPermSize=128m

linux下编辑TOMCAT_HOME/bin/catalina.sh,在第二行中插入如下配置:

1
JAVA_OPTS="-server -Xms1024m -Xmx1024m -XX:PermSize=128M -XX:MaxNewSize=512m -XX:MaxPermSize=512m"

一般设置-Xms、-Xmx 相等以避免在每次GC 后调整堆的大小。

Eclipse配置

编辑eclipse安装目录下eclipse.ini配置文件,最后添加如下配置:

1
2
3
4
5
6
7
8
9
10
-Dosgi.requiredJavaVersion=1.7
-Xms1024m
-Xmx2048m
-Xmn384m
-XX:PermSize=128m
-XX:MaxPermSize=512M
-XX:+UseParallelGC
-XX:+DisableExplicitGC
# 编辑器语言配置项
-nl zh
参数名 含义 默认值 备注
-XX:+UseParallelGC Full GC采用parallel MSC 默认不启用,-server时启用 新生代使用并行清除,年老代使用单线程Mark-Sweep-Compact清除的垃圾收集器。
-XX:+DisableExplicitGC 禁止代码中显示调用GC 默认不启用 如果加上了这个JVM启动参数,那么代码中调用System.gc()没有任何效果,相当于是没有这行代码一样。
0%