关注大学生就业,培养泛IT高端人才

陕西新榜样官方网站

您的位置:  > 新闻动态 > 公司动态 >

Java GC调优怎么做?

来源:西安JAVA培训 发布时间:2018-10-23 浏览量:

  目前不少外部资料对G1的介绍大多还停留在JDK 7或早期,很多结论现在存在着较大的偏差,甚至一些过去的JAVA中GC选项已经不再推荐使用。所以,今天就由陕西新榜样软件科技有限公司的西安JAVA培训讲师会选取JAVA中最新版JDK中的默认G1 GC作为重点进行详解,并且会从调优实践的角度,分析典型场景和调优思路。下面我们一起来更新下这方面的知识。

  想必大家谈到JAVA调优,想的是针对特定场景、特定目的的事情,对于 GC 调优来说,首先就需要清楚调优的目标是什么?从性能的角度看,通常我们需要关注这三个方面:内存占用、延时和吞吐量,大多数情况下调优会侧重于其中一个或者两个方面的目标,很少有情况可以兼顾三个不同的角度。当然,除了上面这三个方面,也需要考虑其他GC相关的场景,例如,OOM也可能与不合理的GC相关参数有关;或者,应用启动速度方面的需求。

  基本的调优思路可以总结为:

  理解应用需求和问题,确定调优目标。假设,我们开发了一个应用服务,但发现偶尔会出现性能抖动,出现较长的服务停顿。评估用户可接受的响应时间和业务量,将目标简化为,希望GC暂停,尽量控制在 200ms以内,并且保证一定标准的吞吐量。

  掌握JVM和GC的状态,定位具体的问题,确定真的有GC调优的必要。具体有很多方法,比如,通过Jstat等工具查看GC等相关状态,可以开启GC日志,或者是利用操作系统提供的诊断工具等。例如,通过追踪GC日志,就可以查找是不是GC在特定时间发生了长时间的暂停,进而导致了应用响应不及时。

  这里需要思考,选择的GC类型是否符合我们的应用特征,如果是,具体问题表现在哪里,是Minor GC过长,还是Mixed GC等出现异常停顿情况;如果不是,考虑切换到什么类型,如CMS和G1都是更侧重于低延迟的GC选项。

  总之,通过分析确定具体调整的参数或者软硬件配置。验证是否达到调优目标,如果达到目标,即可以考虑结束调优;否则,重复完成分析、调整、验证这个过程。

  陕西新榜样软件科技有限公司是一家西安软件培训的龙头企业,拥有众多的师资力量与良好的教学环境,致力于打造西安最权威最专业的IT培训平台。陕西新榜样会定期发布西安软件培训等相关资料文章,包括:西安JAVA培训西安UI培训WEB开发培训网络营销工程师培训等领域,敬请关注!

  西安JAVA培训热线:029-87541535

  西安软件学校网址:www.xinbangyang.com

  联系地址:陕西省西安市碑林区东大街端履门云龙大厦9楼

IT培训 服务