1、查看JVM所有默认配置
java -XX:+PrintFlagsFinal -version
2、JVM常用设置
1)堆设置
- -Xms:初始堆大小
- -Xmx:最大堆大小
- -Xss:单个线程堆栈大小值
- -XX:NewSize=n:设置年轻代大小
- -XX:NewRatio=n:设置年轻代和年老代的比值。如:为3,表示年轻代与年老代比值为1:3,年轻代占整个年轻代年老代和的1/4
- -XX:SurvivorRatio=n:年轻代中Eden区与两个Survivor区的比值。注意Survivor区有两个。如:3,表示Eden:Survivor=3:2,一个Survivor区占整个年轻代的1/5
- -XX:MaxPermSize=n:设置最大持久代大小
- -XX:PermSize=n:设置持久代大小
2)收集器设置
- -XX:+UseSerialGC:设置串行收集器
- -XX:+UseParallelGC:设置并行收集器
- -XX:+UseParalledlOldGC:设置并行年老代收集器
- -XX:+UseConcMarkSweepGC:设置并发收集器
3)垃圾回收统计信息
- -XX:+PrintGC
- -XX:+PrintGCDetails
- -XX:+PrintGCTimeStamps
- -Xloggc:filename
4)并行收集器设置
- -XX:ParallelGCThreads=n:设置并行收集器收集时使用的CPU数。并行收集线程数。
- -XX:MaxGCPauseMillis=n:设置并行收集最大暂停时间
- -XX:GCTimeRatio=n:设置垃圾回收时间占程序运行时间的百分比。公式为1/(1+n)
5)并发收集器设置
- -XX:+CMSIncrementalMode:设置为增量模式。适用于单CPU情况。
- -XX:ParallelGCThreads=n:设置并发收集器年轻代收集方式为并行收集时,使用的CPU数。并行收集线程数。
3、JVM优化配置方式
1)命令提示符下启动并使用JVM:
java -Xmx128m -Xms64m -Xmn32m -Xss16m target文件
2)集成开发环境下(如eclipse)启动并使用JVM时:
在eclipse根目录下打开eclipse.ini,默认内容为(这里设置的是运行当前开发工具的JVM内存分配):
-vmargs -Xms40m -Xmx256m -vmargs表示以下为虚拟机设置参数,
可修改其中的参数值,也可添加-Xmn,-Xss,
另外,eclipse.ini内还可以设置非堆内存,如:-XX:PermSize=56m,-XX:MaxPermSize=128m。
3)服务器环境下(如Tomcat)启动并使用JVM时(对当前服务器环境下所以Java程序生效):
linux修改配置文件catalina.sh
export JAVA_OPTS= -Xms128m -Xmx512m 设置JAVA虚拟机的内存
export CATALINA_OPTS= -Xms128m -Xmx256m 设置tomcat可以使用多少内存