博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
说说JVM的GC功能之一GC算法的选择
阅读量:5810 次
发布时间:2019-06-18

本文共 562 字,大约阅读时间需要 1 分钟。

如果你的应用可以忍受Full GC带来的停顿,Throught收集器(即并行GC)能获得最高的性能。

同是他使用CPU和堆的大小都比其他的收集器少(当然不包括Serial收集器,它的使用场景太有限)。

如果无法忍受Full GC带来的停顿,如果可用堆较小,可以选择CMS或G1,如果可用堆较大,建议使用G1。

1.  对于高负荷的应用,若GC时间不超过3%, 调优GC的优化空间比较有限,建议其他地方入手。

2. 如果停顿时间与目标接近,你需要调整最大停顿时间。如果差距很大。

    建议缩小新生代的大小(如果是FullGC的导致,则减少老年代大小),这样停顿次数增加,但单次停顿时间短了。

几点总结:

  1. 所有回收算法对新生代的回收都需要"Stop-The-World"。

  2. Serial Old,Throught收集器收集对于老年代的回收,需要"Stop-The-World"。

  3. CMS收集器在CPU不足或因碎片无法装载对象时,会退变成单线程的Serial Old。

  4. G1收集器因为老年代也分几个区,可能执行区与区之间Copy回改,一定程度减少碎片问题。

  5. 如果你关注整体请求的响应时间,CMS更合适。如果只关注90%的请求的响应时间,Throught收集器更好。

  6. 当CPU充足时,CMS可能表现出比Throught收集器更好的吞吐量。

转载地址:http://zjcbx.baihongyu.com/

你可能感兴趣的文章
d3 v4实现饼状图,折线标注
查看>>
微软的云策略
查看>>
Valid Parentheses
查看>>
【ES6】数值的扩展
查看>>
性能测试之稳定性测试
查看>>
ES6的 Iterator 遍历器
查看>>
2019届高二(下)半期考试题(文科)
查看>>
【REDO】删除REDO LOG重做日志组后需要手工删除对应的日志文件(转)
查看>>
nginx 301跳转到带www域名方法rewrite(转)
查看>>
AIX 配置vncserver
查看>>
windows下Python 3.x图形图像处理库PIL的安装
查看>>
【IL】IL生成exe的方法
查看>>
network
查看>>
SettingsNotePad++
查看>>
centos7安装cacti-1.0
查看>>
3个概念,入门 Vue 组件开发
查看>>
没有JS的前端:体积更小、速度更快!
查看>>
数据指标/表现度量系统(Performance Measurement System)综述
查看>>
GitHub宣布推出Electron 1.0和Devtron,并将提供无限制的私有代码库
查看>>
Angular2, NativeScript 和 React Native比较[翻译]
查看>>