常用的JVM配置参数:
-Xms2g:初始化堆大小为 2g;
-Xmx2g:堆最大内存为 2g;
-XX:NewRatio=4:设置年轻的和老年代的内存比例为 1:4;
-XX:SurvivorRatio=8:设置新生代 Eden 和 Survivor 比例为 8:2;
–XX:+UseParNewGC:指定使用 ParNew + Serial Old 垃圾回收器组合;
-XX:+UseParallelOldGC:指定使用 ParNew + ParNew Old 垃圾回收器组合;
-XX:+UseConcMarkSweepGC:指定使用 CMS + Serial Old 垃圾回收器组合;
-XX:+UseG1GC:设置使用G1垃圾回收器
-XX:+PrintGC:开启打印 gc 信息;
-XX:+PrintGCDetails:打印 gc 详细信息。
-XX:+PrintHeapAtGC: 表示可以看到每次GC前后堆内存布局
-XX:UseTLAB:设置使用TLAB
-XX:+PrintTLAB: 表示可以看到TLAB的使用情况。 TLAB的全称是Thread Local Allocation Buffer 即线程本地分配缓 存区,这是一个线程专用的内存分配区域。
-verbose:gc(-verbose:class可以输出类加载的信息)
-Xss:表示可以设置虚拟机栈的大小为128k
-Xoss:表示设置本地方法栈的大小为128k。不过HotSpot并不区分虚拟机栈和本地方法栈,因此对于HotSpot来说这个参数是无效的
-XX:+TraceClassLoading: 表示查看类的加载信息
-XX:+TraceClassUnLoading: 表示查看类的卸载信息
-XX:+HeapDumpOnOutOfMemoryError: 表示可以让虚拟机在出现内存溢出异常时Dump出当前的堆内存转储快照
-XX:HeapDumpPath:表示可以让虚拟机在出现内存溢出异常时Dump出当前的堆内存转储快照存储地址
XX:OnOutOfMemoryError:当系统发生OOM错误时,虚拟机在错误发生时运行一段第三方脚本, 比如, 当OOM发生时,重置系统 -=c:\\reset.bat
-XX:-UseGCOverheadLimit:取消outofmemory警告
-XX:PretenureSizeThreshold: 表示对象大于3145728(3M)时直接进入老年代分配,这里只能以字节作为单位
-XX:MaxTenuringThreshold: 表示对象年龄大于1,自动进入老年代,如果设置为0的话,则年轻代对象不经过Survivor区,直接进入年老代。对于年老代比较多的应用,可以提高效率。如果将此值设置为一个较大值,则年轻代对象会在Survivor区进行多次复制,这样可以增加对象在年轻代的存活时间,增加在年轻代被回收的概率。
-XX:CompileThreshold: 表示一个方法被调用1000次之后,会被认为是热点代码,并触发即时编译
-XX:+UseSpining:开启自旋锁
-XX:PreBlockSpin:更改自旋锁的自旋次数,使用这个参数必须先开启自旋锁
-XX:MaxGCPauseMillis:设置每次年轻代垃圾回收的最长时间,如果无法满足此时间,JVM会自动调整年轻代大小,以满足此值。
-XX:+UseAdaptiveSizePolicy:设置此选项后,并行收集器会自动选择年轻代区大小和相应的Survivor区比例,以达到目标系统规定的最低响应时间或者收集频率等,此值建议使用并行收集器时,一直打开
开启逃逸分析(JDK8中,逃逸分析默认开启。)
-XX:+DoEscapeAnalysis
关闭逃逸分析
-XX:-DoEscapeAnalysis
逃逸分析结果展示
-XX:+PrintEscapeAnalysis
(JDK8中,同步消除默认开启。)
-XX:+EliminateLocks
作 者:请叫我头头哥
出 处:http://www.cnblogs.com/toutou/
关于作者:专注于基础平台的项目开发。如有问题或建议,请多多赐教!
版权声明:本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接。
特此声明:所有评论和私信都会在第一时间回复。也欢迎园子的大大们指正错误,共同进步。或者直接私信我
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是作者坚持原创和持续写作的最大动力!
#comment_body_3242240 { display: none }
来源:https://www.cnblogs.com/toutou/p/jvm_parameter.html
本站部分图文来源于网络,如有侵权请联系删除。