垃圾回收的性能指标

2023-07-28 jvm

主要有吞吐量和暂停时间两种,那么什么情况下,那种更重要呢?

吞吐量:指用户线程执行java代码的时间与CPU总消耗时间的比值,即吞吐率=用户线程执行java代码的时间/ (用户线程执行java代码的时间+垃圾收集时间)。假设虚拟机总共运行了100分钟,其中垃圾收集花掉1分钟,那吞吐量就是99%。

暂停时间:指应用程序线程暂停,让GC线程执行回收,这段时间称为暂停时间。例如,GC回收需要100毫秒的暂停时间,那这100毫秒内, 你的应用程序就停止100毫秒。

对于JVM来说,停顿时间越短就越适合需要与用户交互的程序,良好的响应速度能提升用户体验。而高吞吐量则可以高效率地利用CPU时间,尽快完成程序的运算任务,主要适合在后台运算而不需要太多交互的任务。所以一般对于客户端来说暂停时间比吞吐量重要。

上次更新: 6 个月前