我们常常听到别人说:”defer 在栈退出时执行,会有性能损耗,尽量不要用。“ 前面的博客 defer原理 我们分析了defer延迟调用的底层实现原理 。下面我们就基于那篇原理分析文章,来分析一下 defer 延迟调用的性能损耗。
基准测试
package main
import (
"sync"
"testing"
)
var lock sync.Mutex
func NoDefer() {
lock.Lock()
lock.Unlock()
}
func Defer() {
lock.Lock(