吞吐量垃圾收集

che*_*bus 8 java garbage-collection jvm-hotspot

我正在经历 Hotspot JVM 垃圾收集,我有一个问题,

第一篇文章说

吞吐量目标是根据垃圾收集所花费的时间垃圾收集之外所花费的时间 (称为应用程序时间)来衡量的。

第二个说,

吞吐量是在很长一段时间内未花费在垃圾收集上的总时间的百分比。吞吐量包括分配所用的时间(但通常不需要调整分配速度)。

第二篇文章也说

吞吐量与可用内存量成反比。

我很困惑吞吐量是否是垃圾收集中花费的时间或未花费在垃圾收集中的时间的衡量标准,以及它与可用内存总量有何关系。

感谢你的帮助!

The*_*ind 3

它与可用内存总量有何关系==> 在大多数情况下(非 IO 绑定系统),随着任何进程可用内存的增加,其性能和吞吐量都会增加。对于 JVM,随着堆大小的增加,GC 几乎没有什么工作可做。因此,吞吐量与内存成反比(并非总是如此。记住这一点)。

接下来,吞吐量是非 GC 线程执行其任务可用的总时间。

  • 感谢失落的心灵!因此,为了重申和验证我的理解,吞吐量是应用程序线程(非 gc 线程)无缝执行其任务而不会被 gc 集合阻塞的可用时间!那么当堆增加时这个时间就会增加,那么它与堆如何成反比呢? (3认同)