Tune Code Before Your Garbage Collector
6 days ago
- #Java Performance
- #Garbage Collection
- #Low Latency
- 在Java中,内存分配的优化对性能的影响可能比垃圾收集器(GC)的选择更大。
- 使用JLBH对MarketDataSnapshot到NewOrderSingle的基准测试,在30分钟内以50K/s的速率,比较了使用SLF4J日志记录与无日志记录(使用Chronicle Queue)的情况。
- 添加冗余的SLF4J日志记录会显著降低各种GC(如Parallel、ZGC、G1和Shenandoah)的延迟指标(p99和p99.99)。
- 将日志移到tmpfs文件系统减少了延迟,但完全移除冗余日志记录带来了更大的改进,p99.99下降了三个数量级。
- 移除日志记录改变了最佳GC选择:Parallel GC表现最佳,而Shenandoah则变差,这突显了在调整GC之前应优先进行工作负载优化。