最近 Go1.13 终于发布了,其中一个值得关注的特性就是 defer 在大部分的场景下性能提升了30%,但是官方并没有具体写是怎么提升的,这让大家非常的疑惑。而我因为之前写过《深入理解 Go defer》 和 《Go defer 会有性能损耗,尽量不要用?》 这类文章,因此我挺感兴趣它是做了什么改变才能得到这样子的结果,所以今天和大家一起探索其中奥妙。 一、测试 Go1.12 $ go test -bench=. -benchmem -run=none goos: darwin goarch: amd64 pkg: github.com/EDDYCJY/awesomeDefer BenchmarkDoDefer-4 20000000 91.4 ns/op 48 B/op 1 allocs/op BenchmarkDoNotDefer-4 30000000 41.