关注
62.JVM调优参数参考
1.针对JVM堆的设置,一般可以通过-Xms -Xmx限定其最小、最大值,为了防止垃圾收集器在最小、最大之间收缩堆而产生额外的时间,通常把最大、最小设置为相同的值;
2.年轻代和年老代将根据默认的比例(1:2)分配堆内存, 可以通过调整二者之间的比率NewRadio来调整二者之间的大小,也可以针对回收代。
比如年轻代,通过 -XX:newSize -XX:MaxNewSize来设置其绝对大小。同样,为了防止年轻代的堆收缩,我们通常会把-XX:newSize -XX:MaxNewSize设置为同样大小。
3.年轻代和年老代设置多大才算合理
1)更大的年轻代必然导致更小的年老代,大的年轻代会延长普通GC的周期,但会增加每次GC的时间;小的年老代会导致更频繁的Full GC
2)更小的年轻代必然导致更大年老代,小的年轻代会导致普通GC很频繁,但每次的GC时间会更短;大的年老代会减少Full GC的频率
如何选择应该依赖应用程序对象生命周期的分布情况: 如果应用存在大量的临时对象,应该选择更大的年轻代;如果存在相对较多的持久对象,年老代应该适当增大。但很多应用都没有这样明显的特性。
在抉择时应该根 据以下两点:
(1)本着Full GC尽量少的原则,让年老代尽量缓存常用对象,JVM的默认比例1:2也是这个道理 。
(2)通过观察应用一段时间,看其他在峰值时年老代会占多少内存,在不影响Full GC的前提下,根据实际情况加大年轻代,比如可以把比例控制在1:1。但应该给年老代至少预留1/3的增长空间。
4.在配置较好的机器上(比如多核、大内存),可以为年老代选择并行收集算法: -XX:+UseParallelOldGC ,默认为Serial收集。
5.线程堆栈的设置:每个线程默认会开启1M的堆栈,用于存放栈帧、调用参数、局部变量等,对大多数应用而言这个默认值太了,一般256K就足用。
理论上,在内存不变的情况下,减少每个线程的堆栈,可以产生更多的线程,但这实际上还受限于操作系统。
查看原帖
点赞 评论
相关推荐

点赞 评论 收藏
分享
点赞 评论 收藏
分享
牛客热帖
更多
正在热议
更多
# 实习进度记录 #
152770次浏览 1691人参与
# 我的求职精神状态 #
2454次浏览 76人参与
# Keep实习校招 #
48837次浏览 252人参与
# 京东美团大战,你怎么看? #
20081次浏览 188人参与
# 好未来求职进展汇总 #
5779次浏览 43人参与
# 大家每天通勤多久? #
30872次浏览 228人参与
# 平安产险科技中心求职汇总 #
244469次浏览 2613人参与
# 大城市找工作会更容易吗 #
16208次浏览 123人参与
# 金山WPS工作体验 #
20620次浏览 132人参与
# 提前批过来人的忠告 #
97662次浏览 1092人参与
# 签约有哪些注意事项 #
26968次浏览 227人参与
# 招银网络科技工作体验 #
18803次浏览 85人参与
# 生化环材还是天坑吗 #
29953次浏览 277人参与
# 4399求职进展汇总 #
17483次浏览 138人参与
# 中兴求职进展汇总 #
579499次浏览 2614人参与
# 华为存储OD事变 #
121620次浏览 681人参与
# 京东工作体验 #
12530次浏览 88人参与
# 生物制药/化工校招攻略 #
39959次浏览 275人参与
# 校招第一份工作你干了多久? #
66734次浏览 334人参与
# 腾讯音乐求职进展汇总 #
82123次浏览 450人参与
# 小红书求职进展汇总 #
49523次浏览 441人参与
# 宁德时代求职进展汇总 #
104918次浏览 622人参与