当前位置:网站首页>JVM调优简要思想及简单案例-怎么调优

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

2022-06-24 03:45:00 InfoQ

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

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

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

null

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

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

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

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

版权声明
本文为[InfoQ]所创,转载请带上原文链接,感谢
https://xie.infoq.cn/article/c082f40788113fbc365fe062a