参数 |
说明 |
-Xms |
通过这个选项可以要求系统为堆内存池分配内存空间的最小值。通常情况下这个选项的数值为1 024的整数倍并且大于1MB。这个值的取值规则为,一般情况下这个值(-Xms)与最大堆内存相同,以降低垃圾回收的频度 |
-Xmx |
同xms参数。此值可以设置与-Xmx相同,以避免每次垃圾回收完成后JVM重新分配内存。 |
-Xmn |
此值对系统性能影响较大,Sun官方推荐配置为整个堆的3/8。 |
-Xnoclassgc |
这个选项用来取消系统对特定类的垃圾回收。它可以防止当这个类的所有引用丢失之后,这个类仍被引用时不会再一次被重新装载,因此这个选项将增大系统堆内存的空间 |
-Xss |
设置每个线程的堆栈大小。JDK5.0以后每个线程堆栈大小为1M,以前每个线程堆栈大小为256K。更具应用的线程所需内存大小进行调整。 |
XX参数
参数 |
详细 |
-XX:NewSize |
在通常情况下这个选项的数值为1 024的整数倍并且大于1MB。这个值的取值规则为,一般情况下这个值-XX:NewSize是最大堆内存(maximum heap size)的四分之一。增加这个选项值的大小是为了增大较大数量的短生命周期对象 增加java新对象生产堆内存相当于增加了处理器的数目。并且可以并行地分配内存,但是请注意内存的垃圾回收却是不可以并行处理的 |
-XX:MaxNewSize |
其功用与上面的设置新对象生产堆内存-XX:NewSize相同 |
-XX:SurvivorRatio |
空间(Eden/survivor)的大小的比例。设置年轻代中Eden区与Survivor区的大小比值。设置为4,则两个Survivor区与一个Eden区的比值为2:4,一个Survivor区占整个年轻代的1/6 |
-XX:NewRatio |
设置年轻代(包括Eden和两个Survivor区)与年老代的比值(除去持久代)。设置为4,则年轻代与年老代所占比值为1:4,年轻代占整个堆栈的1/5 |
-XX:MaxPermSize |
设置持久代大小 |
-XX:MaxTenuringThreshold |
设置垃圾最大年龄。如果设置为0的话,则年轻代对象不经过Survivor区,直接进入年老代。对于年老代比较多的应用,可以提高效率。如果将此值设置为一个较大值,则年轻代对象会在Survivor区进行多次复制,这样可以增加对象再年轻代的存活时间,增加在年轻代即被回收的概论。 |
-XX:+UseSerialGC |
设置串行收集器 |
-XX:+UseParallelGC |
设置并行收集器 |
-XX:+UseParalledlOldGC |
设置并行年老代收集器 |
-XX:+UseConcMarkSweepGC |
设置并发收集器 |
-XX:ParallelGCThreads |
设置并行收集器收集时使用的CPU数。并行收集线程数。 |
-XX:MaxGCPauseMillis |
设置并行收集最大暂停时间 |
-XX:GCTimeRatio |
设置垃圾回收时间占程序运行时间的百分比。公式为1/(1+n) 并发收集器设置 |
-XX:+CMSIncrementalMode |
设置为增量模式。适用于单CPU情况 |
-XX:+UseCMSCompactAtFullCollection |
使用并发收集器时,设置在FULL GC的时候, 对年老代的压缩;CMS是不会移动内存的, 因此, 这个非常容易产生碎片, 导致内存不够用, 因此, 内存的压缩这个时候就会被启用。 增加这个参数是个好习惯。可能会影响性能,但是可以消除碎片 |
-XX:CMSFullGCsBeforeCompaction |
上面配置开启的情况下,这里设置多少次Full GC后,对年老代进行压缩。由于并发收集器不对内存空间进行压缩,整理,所以运行一段时间以后会产生"碎片",使得运行效率降低.此值设置运行多少次GC以后对内存空间进行压缩,整理。 |
-XX:CMSInitiatingOccupancyFraction |
预留足够的空间给young gc,防止从young gc 过来一个较大的内存块,而年老代无足够预留空间,无法提供内存快用于回收后的分配,引起强制的full gc,造成较长时间的线程中断 |
调试辅助信息打印
-XX:+PrintGC
-XX:+PrintGCDetails
-XX:+PrintGCTimeStamp
-XX:+PrintGCApplicationStoppedTime
-XX:PrintHeapAtGC
-Xloggc:filename:
-XX:+HeapDumpOnOutOfMemoryError
-XX:+HeapDumpBeforeFullGC
-XX:HeapDumpPath
-XX:+TraceClassLoading
-XX:+TraceClassUnloading
-Xprof
-Xrunhprof
https://blogs.oracle.com/poonam/entry/understanding_cms_gc_logs
http://kenwublog.com/docs/java6-jvm-options-chinese-edition.htm
http://www.oracle.com/technetwork/java/javase/gc-tuning-6-140523.html