JVM常用调优配置参数
2023-03-31 11:00:36 时间
常用的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:
eset.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/
关于作者:专注于基础平台的项目开发。如有问题或建议,请多多赐教!
版权声明:本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文链接。
特此声明:所有评论和私信都会在第一时间回复。也欢迎园子的大大们指正错误,共同进步。或者直接私信我
声援博主:如果您觉得文章对您有帮助,可以点击文章右下角【推荐】一下。您的鼓励是作者坚持原创和持续写作的最大动力!
相关文章
- 深入探讨Java中的异常与错误处理
- 研究学习Kotlin的一些方法
- 数据显示Java热度持续下落,日子屈指可数?
- 2017年5月编程语言排行榜:Java与C语言优势正开始缩小
- Java多线程之内置锁与显示锁
- Java线程池的理论与实践
- 白话阿里巴巴Java开发手册(编程规约)
- 关于Java你不知道的十件事
- Java服务化系统线上应急和技术攻关,你必须掌握的Linux命令
- Java实现高斯模糊和图像的空间卷积
- Java阻塞队列实现原理分析
- NPM使用技巧
- Node.js对Java开发者而言是什么?
- Java反射机制应用实践
- 理解RxJava中的Single和Completable
- 2017年你不能错过的Java类库
- 大规模集群下的Hadoop NameNode
- 从源码解密Spark内存管理
- 2017年3月编程语言排行榜:Swift首次进入前十
- JVM热点技术:Java类的加载机制