写点什么

JVM 调优简要思想及简单案例 - 怎么调优

作者:zarmnosaj
  • 2022 年 6 月 23 日
  • 本文字数:614 字

    阅读完需:约 2 分钟

看最后一部分,基于上一篇文章的这个条件,我们怎么进行调优?


Survivor 区域是明显不足的。 此场景中大部分对象的生命周期都是极其短暂的,不应该让其频繁进入老年代,同时也没必要给老年代维持过大的空间,尽可能的让对象留在新生代里被回收掉。因为这是一个订单背景的后台,它不会有太多的长生命周期的对象,所以这个目标就是尽可能让对象留在新生代里面就会回收掉。


所以考虑把新生代调整为 2G,老年代调整为 1G,那么此时 Eden 区域大小为 1.6G,每个 Survivor 区大小为 200MB。这个时候 Eden 区域和两个 Survivor 区比例还是 8 比 1 比 1



那这个时候 Survivor 区域变大之后,也就我们刚刚举的这个例子,这 100 MB 的垃圾对象,就能够顺利地进入这个另一个 Survivor 区。在进行下一次垃圾回收的时候,它也能够顺利被顺利地被回收掉,存活数据以及内存占用也就大大降低了。


此时 Survivor 区域变大,也就大大降低了新生代 GC 后存活对象在 Survivor 区放不下的问题,也避免了触发动态年龄判断机制,直接进入老年代的问题。


到这里,JVM 的简要调优的主要内容都讲得差不多了,这只是一个简单的案例以及简要的思想。日常工作中的调优,也基本离不开这种类似的思想:我们尽量让 FULL GC 可能少的发生,老年代 GC 也尽量在没有必要的情况下都让它放到新生代 GC 里面去做。


简单地把一些很浅的东西先拿出来给大家分享一下,让大家有一个印象,如果大家这个已经掌握得很深了,可以进行更多的分享,后续如果有机会,我也会对此专栏进行更深入的研究学习。

发布于: 刚刚阅读数: 4
用户头像

zarmnosaj

关注

靡不有初,鲜克有终 2020.02.06 加入

成都后端混子

评论

发布
暂无评论
JVM调优简要思想及简单案例-怎么调优_6月月更_zarmnosaj_InfoQ写作社区