Hasty Briefsbeta

双语

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之前应优先进行工作负载优化。