参考资料
Go1.13 defer 的性能是如何提高的 https://studygolang.com/articles/23352
golang defer性能损耗和实际使用场景 https://blog.csdn.net/u010853261/article/details/102773637


结论: golang 使用 defer 对性能影响很小(1.13版本以上)

这里使用参考文章2内的代码进行benchmark测试
golang版本: go version go1.14 linux/amd64

package main

import (
	"sync"
	"testing"
)

var lock sync.Mutex

func NoDefer() {
	lock.Lock()
	lock.Unlock()
}
func Defer() {
	lock.Lock()
	defer lock.Unlock()
}

func BenchmarkNoDefer(b *testing.B) {
	for i := 0; i < b.N; i++ {
		NoDefer()
	}
}

func BenchmarkDefer(b *testing.B) {
	for i := 0; i < b.N; i++ {
		Defer()
	}
}

go test -bench=. defer_test.go

结果:
go笔记-defer以及性能
可见影响并不大

相关文章:

  • 2022-01-17
  • 2021-08-30
  • 2022-12-23
  • 2021-06-07
  • 2021-08-07
  • 2021-10-05
  • 2022-12-23
  • 2022-12-23
猜你喜欢
  • 2021-06-01
  • 2022-12-23
  • 2021-12-22
  • 2022-01-19
  • 2022-12-23
  • 2021-08-31
  • 2021-12-03
相关资源
相似解决方案