https://blogs.oracle.com/javamagazine/post/java-garbage-collectors-evolution
吞吐量:
As you can see, the throughput scores increase significantly simply by moving to later JDK releases. JDK 11 improves by around 5% and JDK 18 by around 18%, respectively, compared to JDK 8
延迟:
设置最大停顿时间为 200ms
As you can see, the throughput scores increase significantly simply by moving to later JDK releases. JDK 11 improves by around 5% and JDK 18 by around 18%, respectively, compared to JDK 8
设置最大停顿时间为 50ms
[td][/td]
[td]JDK8 200ms[/td]
[td]JDK11 200ms[/td]
[td]JDK18 200ms[/td]
[td]JDK18 50ms[/td]
Average (ms)
124
111
89
44
P99 (ms)
176
134
104
56
Relative collection time (%)
n/a
-15.8
-34.4
+0.06
内存占用
With JDK 8, after a short warmup period, G1 native memory usage settles at around 5.8 GB of native memory. JDK 11 improved on that, reducing the native memory footprint to around 4 GB; JDK 17 improved it to around 1.8 GB; and JDK 18 settles at around 1.25 GB of garbage collection native memory usage. This is a reduction of extra memory usage from almost 30% of the Java heap in JDK 8 to around 6% of extra memory usage in JDK 18.
[ol]
[/ol]