JVM学习之GC参数设置
2016-01-14 23:10
417 查看
1: heap size
a: -Xmx
指定jvm的最大heap大小,如:-Xmx2g
b: -Xms
指定jvm的最小heap大小,如:-Xms1g
c: -Xmn
指定jvm中New Generation的大小,如:-Xmn256m
d: -XX:PermSize
指定jvm中Perm Generation的最小值,如:-XX:PermSize=32m
e: -XX:MaxPermSize
指定Perm Generation的最大值,如:-XX:MaxPermSize=64m
f: -Xss
指定线程桟大小,如:-Xss128k
g: -XX:NewRatio
指定jvm中Old Generation heap size与New Generation的比例,在使用CMS GC的情况下此参数失效, 如:-XX:NewRatio=2
h: -XX:SurvivorRatio
指定New Generation中Eden Space与一个Survivor Space的heap size比例,-XX:SurvivorRatio=8,那么在总共New Generation为10m的情况下,Eden Space为8m
i: -XX:MinHeapFreeRatio
指定jvm heap在使用率小于n的情况下,heap进行收缩,Xmx==Xms的情况下无效,如:-XX:MinHeapFreeRatio=30
j: -XX:MaxHeapFreeRatio
指定jvm heap在使用率大于n的情况下,heap进行扩张,Xmx==Xms的情况下无效,如:-XX:MaxHeapFreeRatio=70
k: -XX:LargePageSizeInBytes
指定Java heap的分页页面大小,如:-XX:LargePageSizeInBytes=128m
2: garbage collector
a: -XX:+UseParallelGC
指定在New Generation使用parallel collector,并行收集,同时启动多个垃圾回收thread,不能和CMS gc一起使用.系统吨吐量优先,但是会有较长长时间的app pause,后台系统任务可以使用此gc
b: -XX:ParallelGCThreads
指定parallel collection时启动的thread个数,默认是物理processor的个数,如:-xx:ParallelGCThreads=8
c: -XX:+UseParallelOldGC
指定在Old Generation使用parallel collector
d: -XX:+UseParNewGC
指定在New Generation使用parallel collector,是UseParallelGC的gc的升级版本,有更好的性能或者优点,可以和CMS gc一起使用
e: -XX:+CMSParallelRemarkEnabled
在使用UseParNewGC的情况下,尽量减少mark的时间
f: -XX:+UseConcMarkSweepGC
指定在Old Generation使用concurrent cmark sweep gc,gc thread和app thread并行,所以称作concurrent.app pause时间较短,适合交互性强的系统,如web server
g: -XX:+UseCMSCompactAtFullCollection
在使用concurrent gc的情况下,防止memory fragmention,对live object进行整理,使memory碎片减少
h: -XX:CMSInitiatingOccupancyFraction=n
指示在old generation在使用了n%的比例后,启动concurrent collector,默认值是68,如:-XX:CMSInitiatingOccupancyFraction=70
有个bug,在低版本的jvm上出现,http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6486089
i: -XX:+UseCMSInitiatingOccupancyOnly
指示只有在old generation在使用了初始化的比例后concurrent collector启动收集
3:others
a: -XX:MaxTenuringThreshold
指定一个object在经历了n次young gc后转移到old generation区,在linux64的java6下默认值是15,此参数对于throughput collector无效,如:-XX:MaxTenuringThreshold=31
b: -XX:+DisableExplicitGC
禁止java程序中的full gc,如System.gc()的调用
c: -XX:+UseFastAccessorMethods
原始类型get,set方法的优化
d: -XX:+PrintGCDetails
打应垃圾收集的情况如:
[GC 15610.466: [ParNew: 229689K->20221K(235968K), 0.0194460 secs] 1159829K->953935K(2070976K), 0.0196420 secs]
e: -XX:+PrintGCTimeStamps
打应垃圾收集的时间情况,如:
[Times: user=0.09 sys=0.00, real=0.02 secs]
f: -XX:+PrintGCApplicationStoppedTime
打应垃圾收集时,系统的停顿时间,如:
Total time for which application threads were stopped: 0.0225920 seconds
4 -XX:+UseCompressedOops
压缩指针 64位机器,JDK1.6支持
a: -Xmx
指定jvm的最大heap大小,如:-Xmx2g
b: -Xms
指定jvm的最小heap大小,如:-Xms1g
c: -Xmn
指定jvm中New Generation的大小,如:-Xmn256m
d: -XX:PermSize
指定jvm中Perm Generation的最小值,如:-XX:PermSize=32m
e: -XX:MaxPermSize
指定Perm Generation的最大值,如:-XX:MaxPermSize=64m
f: -Xss
指定线程桟大小,如:-Xss128k
g: -XX:NewRatio
指定jvm中Old Generation heap size与New Generation的比例,在使用CMS GC的情况下此参数失效, 如:-XX:NewRatio=2
h: -XX:SurvivorRatio
指定New Generation中Eden Space与一个Survivor Space的heap size比例,-XX:SurvivorRatio=8,那么在总共New Generation为10m的情况下,Eden Space为8m
i: -XX:MinHeapFreeRatio
指定jvm heap在使用率小于n的情况下,heap进行收缩,Xmx==Xms的情况下无效,如:-XX:MinHeapFreeRatio=30
j: -XX:MaxHeapFreeRatio
指定jvm heap在使用率大于n的情况下,heap进行扩张,Xmx==Xms的情况下无效,如:-XX:MaxHeapFreeRatio=70
k: -XX:LargePageSizeInBytes
指定Java heap的分页页面大小,如:-XX:LargePageSizeInBytes=128m
2: garbage collector
a: -XX:+UseParallelGC
指定在New Generation使用parallel collector,并行收集,同时启动多个垃圾回收thread,不能和CMS gc一起使用.系统吨吐量优先,但是会有较长长时间的app pause,后台系统任务可以使用此gc
b: -XX:ParallelGCThreads
指定parallel collection时启动的thread个数,默认是物理processor的个数,如:-xx:ParallelGCThreads=8
c: -XX:+UseParallelOldGC
指定在Old Generation使用parallel collector
d: -XX:+UseParNewGC
指定在New Generation使用parallel collector,是UseParallelGC的gc的升级版本,有更好的性能或者优点,可以和CMS gc一起使用
e: -XX:+CMSParallelRemarkEnabled
在使用UseParNewGC的情况下,尽量减少mark的时间
f: -XX:+UseConcMarkSweepGC
指定在Old Generation使用concurrent cmark sweep gc,gc thread和app thread并行,所以称作concurrent.app pause时间较短,适合交互性强的系统,如web server
g: -XX:+UseCMSCompactAtFullCollection
在使用concurrent gc的情况下,防止memory fragmention,对live object进行整理,使memory碎片减少
h: -XX:CMSInitiatingOccupancyFraction=n
指示在old generation在使用了n%的比例后,启动concurrent collector,默认值是68,如:-XX:CMSInitiatingOccupancyFraction=70
有个bug,在低版本的jvm上出现,http://bugs.sun.com/bugdatabase/view_bug.do?bug_id=6486089
i: -XX:+UseCMSInitiatingOccupancyOnly
指示只有在old generation在使用了初始化的比例后concurrent collector启动收集
3:others
a: -XX:MaxTenuringThreshold
指定一个object在经历了n次young gc后转移到old generation区,在linux64的java6下默认值是15,此参数对于throughput collector无效,如:-XX:MaxTenuringThreshold=31
b: -XX:+DisableExplicitGC
禁止java程序中的full gc,如System.gc()的调用
c: -XX:+UseFastAccessorMethods
原始类型get,set方法的优化
d: -XX:+PrintGCDetails
打应垃圾收集的情况如:
[GC 15610.466: [ParNew: 229689K->20221K(235968K), 0.0194460 secs] 1159829K->953935K(2070976K), 0.0196420 secs]
e: -XX:+PrintGCTimeStamps
打应垃圾收集的时间情况,如:
[Times: user=0.09 sys=0.00, real=0.02 secs]
f: -XX:+PrintGCApplicationStoppedTime
打应垃圾收集时,系统的停顿时间,如:
Total time for which application threads were stopped: 0.0225920 seconds
4 -XX:+UseCompressedOops
压缩指针 64位机器,JDK1.6支持
相关文章推荐
- Android Studio——JAVA的StringBuffer类
- 2016/1/14 java随机数生成
- 分布式与集群的区别
- 11.2.0.4 ohasd 从 /etc/inittab移动到oracle-ohasd.conf
- iOS超级简单地16进制颜色转换
- 关于前缀自增运算符与后缀自增运算符的区别,以及利弊
- 只想把技术做好,维持一份可观的收入,就精专一门;有创业想法,就全栈
- 深入理解拉格朗日乘子法(Lagrange Multiplier) 和KKT条件
- URL 简介
- bzoj4392【Usaco2015 Dec】Counting Haybales
- main函数参数
- Python---初识堡垒机
- VBS获取GZIP压缩的HTTP内容的实现代码
- 使用javascript实现简单的选项卡切换效果
- 使用javascript实现简单的选项卡切换效果
- 第三篇总结(2016/01/14)
- java基础教程-流IO(五)
- 2016/1/14 java生成指定范围的随机数
- JavaScript 总结几个提高性能知识点
- LockSupport的park和unpark