美文网首页
Java GC调优思路

Java GC调优思路

作者: kid551 | 来源:发表于2018-12-13 00:47 被阅读0次

根据在memory中存活时间的长短,Java所掌控的内存被分为了young generation和old generation。如同字面意思,young generation意味着生存时间的短暂,基本上很快就被GC掉。而old generation则是可以存活很久的object,会长期在memory中存在。

考虑GC的优化,主要是两方面:

  • 吞吐量(throughput):固定时间段内,不用再GC上的时间比例,也即是衡量GC耗费时间的快慢。
  • 延迟(latency):

影响GC的因素:

  • heap的大小
  • young generation的比例

Heap的大小由“整个分配给应用程序的内存大小”(-Xms<min>-Xmx<max>)和heap所占比例(-XX:MinHeapFreeRation=<minimum>-XX:MaxHeapFreeRatio=<maximum>)来决定。

Option Default Value
-XX:MiniHeapFreeRatio 40
-XX:MiniHeapFreeRatio 70
-Xms 6656K
-Xmx calculated

如果需要减少memory footprint,只需要限制heap size,比如将-XX:MiniHeapFreeRatio降到10。

接下来是young generation的大小,也就是它占heap memory的比例。更多的young generation意味着更少的小范围GC,但由于减少了old generation,这意味着更频繁的大范围GC。它是由参数-XX:NewRatio控制的。例如-XX:NewRatio=3表示young generation和old generation的比例为1:3,也即是Eden和Survivor Space加起来只占heap memory的四分之一。当然,你还可以使用-XX:NewSize-XX:MaxNewSize来直接控制young generation的范围。

-XX:SurvivorRatio可以用来调节Eden和Survivor的比例(虽然对performance的影响不大)。例如-XX:SurvivorRatio=6意味着Survivor和Eden的比例为1:6,同时意味着Survivor占整个young generation的八分之一(不是七分之一,因为Survivor有两块)。

相关文章

  • JVM-GC调优

    零、本文纲要 一、 GC调优基本思路二、 新生代内存调优三、 老年代内存调优四、 GC调优案例 官方GC调优指南[...

  • Java GC调优思路

    根据在memory中存活时间的长短,Java所掌控的内存被分为了young generation和old gene...

  • 第二十九章、GC调优思路

    以G1 GC 为例,谈谈GC调优思路? 谈到调优,这一定是针对特定场景、特定目的的事情,对于GC调优来说,首先...

  • Java垃圾回收手册(五):GC调优

    GC调优 翻译原文 => plumbr Java GC handbook 前文参见: Java垃圾回收手册(一):...

  • JVM系列(九):如何优化Java GC

    本文由CrowHawk翻译,地址:如何优化Java GC「译」,是Java GC调优的经典佳作。 Sangmin ...

  • gc调优我们到底在调整什么

    java开发一般都会涉及到jvm调优,其中gc调优是个重点项。那gc调优调整的究竟是什么呢?准确来说是业务。下面围...

  • gc调优我们到底在调整什么

    java开发一般都会涉及到jvm调优其中gc调优是个重点项。那gc调优调整的究竟是什么呢准确来说是业务。下面围绕这...

  • Java GC调优

    1.GC调优是针对特定的场景,特定目的来说。对于GC调优来说,首先要搞清楚调优的目标是什么?从性能的角度来看,我们...

  • full gc 调优思路

    关于full gc的优化思路方案一增大内存增大内存是解决full gc最快的方案之一好处:降低了真正full g...

  • GC原理及调优

    本文介绍 GC 基础原理和理论,GC 调优方法思路和方法,基于 Hotspot jdk1.8,学习之后你将了解如何...

网友评论

      本文标题:Java GC调优思路

      本文链接:https://www.haomeiwen.com/subject/zdwmhqtx.html