看到下面的文章,G1 收集器在高版本 Java 中优化很大。
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
JDK8 200ms | JDK11 200ms | JDK18 200ms | JDK18 50ms | |
---|---|---|---|---|
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.
1
arloor 145 天前
强,可惜以后都不写 java 了
|