noalloc:Golang 零堆分配新方案
noalloc: Tooling and libraries to enforce zero heap allocations in Golang
在 Golang 中写出零堆分配的代码不难,难的是随着代码迭代始终守住这条底线。noalloc 项目提供了一套工具链和库,能自动检查整个调用树中的堆分配行为,并精准定位每一行问题代码。它内置了 Buf、Vec、Slice、Map 等固定容量数据结构,以及无需分配的 JSON 编解码器,让开发者在追求极致性能时不再束手无策。尽管该项目由 AI 生成并在 The Consensus 的生产环境中实验性运行,但其设计思路为高性能 Go 服务提供了新的实践路径。
写出一些不分配堆内存的代码是一回事,确保代码在变更过程中始终不分配则是另一回事。