Go113-defer-的性能是如何提高的
最近 Go1.13 终于发布了,其中一个值得关注的特性就是 defer 在大部分的场景下性能提升了30%,但是官方并没有具体写是怎么提升的,这让大家非常的疑惑。而我因为之前写过《深入理解 Go defer》 和 《Go defer 会有性能损耗,尽量不要用?》 这类文章,因此我挺感兴趣它是做了什么改变才能得到这样子的结果,所以今天和大家一起探索其中奥妙。 原文地址:Go1.13 defer 的性能是如何提高的? 一、测试Go1.12$ go test -bench=. -benchmem -run=nonegoos: darwingoarch: amd64pkg: github.com/EDDYCJY/awesomeDeferBenchmarkDoDefer-4 20000000 91.4 ns/op 48 B/op 1 allocs/opBenchmarkDoNotDefer-4 30000000 41.6 ns/op 48 B/op 1 allocs/opPASSok github.com/EDDYCJY/awesomeDefer 3.234sGo1.13$ go test -bench=. -benchmem -run=nonegoos: darwingoarch: amd64pkg: github.com/EDDYCJY/awesomeDeferBenchmarkDoDefer-4 15986062 74.7 ns/op 48 B/op 1 allocs/opBenchmarkDoNotDefer-4 29231842 40.3 ns/op 48 B/op 1 allocs/opPASSok github.com/EDDYCJY/awesomeDefer 3.444s在开场,我先以不标准的测试基准验证了先前的测试用例,确确实实在这两个版本中,defer 的性能得到了提高,但是看上去似乎不是百分百提高 30 %。 ...