我最近开始学习Go语言,正在尝试实现一个可以被多个groutine并发使用的映射。我想将我的实现与简单的sync.Mutex
保护的映射或类似https://github.com/streamrail/concurrent-map/blob/master/concurrent_map.go的东西进行比较。
通过使用Google Caliper,我发现一个天真的基准测试方法会允许许多不必要的优化来破坏实际结果。使用testing.B
的基准测试是否采用了一些技术来避免这种情况(毕竟Go和Caliper都是Google项目)?如果是,它们是已知的吗?如果不是,那么在Go中进行微基准测试的最佳方式是什么?