Go 1.24用户报告:Datadog如何借助 Swiss Tables版map节省数百 GB 内存?

本文永久链接 – https://tonybai.com/2025/07/22/go-swiss-table-map-user-report 大家好,我是Tony Bai。 Datadog 的故事始于一次对Go 1.24内存回归问题的追踪。在与 Go 社区协作修复了该问题后,他们在部署修复版本的过程中,观察到了一个意料之外的现象:在高流量环境中,内存使用不仅恢复了正常,甚至大幅下降。一个名为 shardRoutingCache 的巨型内存 map,其堆内存占用减少了约 500 MiB,考虑到 Go 的垃圾回收机制(GOGC=100),这相当于节省了近 1 GiB 的物理内存。 ...

July 22, 2025 · 6 min · Tony Bai

Go map使用Swiss Table重新实现,性能最高提升近50%

本文永久链接 – https://tonybai.com/2024/11/14/go-map-use-swiss-table 在2024月11月5日的Go compiler and runtime meeting notes中,我们注意到了一段重要内容,如下图红框所示: 这表明,来自字节的一位工程师在两年多前提出的“使用Swiss table重新实现Go map”的建议即将落地,目前该issue已经被纳入Go 1.24里程碑。 ...

November 14, 2024 · 16 min · Tony Bai