跳到正文
原文
Go Blog· Keith Randall·· 2026-02-27精选AI 评分75

Go 编译器优化小切片的栈分配

Allocating on the Stack

AI 导读

Go 1.25 编译器会为较小的固定或非恒定大小切片分配使用栈上后端存储,Go 1.26 还将类似优化扩展到 append 分配的切片。Go 1.26 对返回的逃逸切片使用 runtime.move2heap,在需要时将栈上切片复制到堆上;若怀疑优化引发正确性或性能问题,可使用 -gcflags=all=-d=variablemakehash=n 关闭相关优化。

推荐理由

文章解释 Go 1.25 与 1.26 编译器如何将小切片分配移至栈上,并用 runtime.move2heap 处理逃逸切片;这些机制及关闭参数可直接帮助开发者理解、验证和排查分配行为。

来源:Go Blog · go.dev