部分文章内容为公开资料查询整理,原文出处可能未标注,如有侵权,请联系我,谢谢。邮箱地址:gnivor@163.com ►►►需要气球么?请点击我吧!

go笔记-defer以及性能

参考资料
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

结果:

可见影响并不大

posted @ 2021-07-19 11:31  流了个火  阅读(225)  评论(0编辑  收藏  举报
►►►需要气球么?请点击我吧!►►►
View My Stats