jvm配置解释

来源:互联网 发布:js分割字符串 编辑:程序博客网 时间:2024/06/05 04:22

1.Parallel Scavenge 和 ParallelOld

-Xmx4g 

-Xms4g

-Xmn820m

-Xss256k

-XX:MaxPermSize=256m(1.8中已经弃用)

-XX:MetaspaceSize=256m

-XX:SurvivorRatio=8

-XX:+HeapDumpOnOutOfMemoryError 

-XX:HeapDumpPath:d:/a.dump

-XX:+UseParallelOldGC

-XX:MaxGCPauseMillis=200

-XX:ParallelGCThreads=逻辑处理器个数

-XX:+CMSClassUnloadingEnabled

-XX:+DisableExplicitGC


2.cms 和 parnew

-Xmx4g 

-Xms4g

-Xmn820m

-Xss256k

-XX:MaxPermSize=256m(1.8中已经弃用)

-XX:MetaspaceSize=256m

-XX:SurvivorRatio=8

-XX:+HeapDumpOnOutOfMemoryError 

-XX:HeapDumpPath=d:/a.dump

-XX:+UseConcMarkSweepGC

-XX:ParallelGCThreads=逻辑处理器个数

-XX:CMSInitiatingOccupancyFraction=75

-XX:+UseCMSCompactAtFullCollection(1.8中已经弃用)

-XX:CMSFullGCsBeforeCompaction=5(1.8中已经弃用)

-XX:+CMSClassUnloadingEnabled

-XX:+DisableExplicitGC


3.g1收集器

-XX:+UseG1GC

-Xmx4g

-Xms4g

-XX:MaxGCPauseMillis=250

-XX:InitiatingHeapOccupancyPercent=45

-XX:+PrintGCDetails

-XX:+PrintAdaptiveSizePolicy

-XX:G1HeapRegionSize=16m

-XX:+ParallelRefProcEnabled

-XX:ParallelGCThreads=逻辑处理器个数

-XX:ConcGCThreads=逻辑处理器个数的四分之一

-XX:G1MixedGCCountTarget=8






-XX:+PrintGCDetails  打印gc的比较信息,并在退出jvm的时候打印堆的详细信息

-XX:+PrintGCTimeStamps 打印gc发生的时间

-XX:+PrintGCApplicationConcurrentTime 打印每次垃圾回收前,程序未中断的执行时间。

-XX:+PrintGCApplicationStoppedTime 打印垃圾回收期间程序暂停的时间。

-Xloggc:filename:把gc信息记录到文件以便分析。

-XX:+TraceClassLoading用来打印类被加载的过程信息

-XX:+TraceClassUnloading 用来打印类被卸载的过程信息

-XX:+PrintFlagsFinal 打印所有的jvm的参数以及对应的值

-XX:+PrintCommandLineFlags 打印用户设置的jvm参数的值或者隐试传递给jvm的参数的值

-Xmx最大堆

-Xms最小堆,一般和最大堆设置一样

-Xmn设置新生代大小,一般设置为整个堆的四分之一,Sun官方推荐配置为整个堆的3/8

-XX:SurvivorRatio  默认为8,则两个Survivor区与一个Eden区的比值为2:8,一个Survivor区占整个年轻代的1/10

-XX:NewRatio   -XX:NewRatio=4表示年轻代与年老代所占比值为1:4,年轻代占整个堆栈的1/5
                       Xms=Xmx并且设置了Xmn的情况下,该参数不需要进行设置。

-XX:+HeapDumpOnOutOfMemoryError 发生堆内存溢出时,打印出堆的信息,可以使用MAT工具分析,通常和-XX:HeapDumpPath使用

-XX:HeapDumpPath:d:/a.dump 导出到某个地方

-XX:PermSize 和-XX:MaxPermSize一样大小设置(1.8中已经弃用)

-XX:MaxPermSize 128m或者256m,看项目的大小(1.8中已经弃用)


-XX:MetaspaceSize,初始空间大小,达到该值就会触发垃圾收集进行类型卸载,同时GC会对该值进行调整:如果释放了大量的空间,就适当降低该值;如果释放了很少的空间,那么在不超过MaxMetaspaceSize时,适当提高该值。
  -XX:MaxMetaspaceSize,最大空间,默认是没有限制的。

-Xss每个线程的堆栈大小,256k差不多了


-XX:ParallelGCThreads=n

设置 STW 工作线程数的值。将 n 的值设置为逻辑处理器的数量。n 的值与逻辑处理器的数量相同,最多为 8。

-XX:CMSInitiatingOccupancyFraction=75使用cms作为垃圾回收使用75%后开始CMS收集

-XX:+UseCMSCompactAtFullCollection:使用并发收集器时,开启对年老代的压缩.(1.8中已经弃用)
-XX:CMSFullGCsBeforeCompaction=0:上面配置开启的情况下,这里设置多少次Full GC后,对年老代进行压缩(1.8中已经弃用)

-XX:+CMSClassUnloadingEnabled允许对类的元数据进行回收

-XX:+DisableExplicitGC 关闭System.gc()



-XX:InitiatingHeapOccupancyPercent=45设置触发标记周期的 Java 堆占用率阈值。默认占用率是整个 Java 堆的 45%。
-XX:+PrintAdaptiveSizePolicy 打印自适应收集的大小。
-XX:G1HeapRegionSize=16m 当使用G1收集器时,设置java堆被分割的大小。这个大小范围在1M到32M之间。
-XX:+ParallelRefProcEnabled  这个选项可以用HotSpot VM的任何一种垃圾回收器上,他会是用多个的引用处理线程,而不是单个线程。这个选项不会启用多线程运行方法的finalizer。他会使用很多线程去发现需要排队通知的finalizable对象。

-XX:G1MixedGCCountTarget=8 设置标记周期完成后,对存活数据上限为 G1MixedGCLIveThresholdPercent 的旧区域执行混合垃圾回收的目标次数。默认值是 8 次混合垃圾回收。混合回收的目标是要控制在此目标次数以内。Java HotSpot VM build 23 中没有此设置

-XX:ConcGCThreads=n 设置并行标记的线程数。将 n 设置为并行垃圾回收线程数 (ParallelGCThreads) 的 1/4 左右。


http://itindex.net/detail/47030-cms-gc-%E9%97%AE%E9%A2%98

http://www.jianshu.com/p/92a5fbb33764

https://www.zhihu.com/question/57722838

http://blog.csdn.net/b_11111/article/details/52725494
http://www.cnblogs.com/zhguang/p/Java-JVM-GC.html

http://www.hollischuang.com/archives/110

原创粉丝点击