为了账号安全,请及时绑定邮箱和手机立即绑定

使用 -race 标志构建 go 程序是否有任何性能损失?

使用 -race 标志构建 go 程序是否有任何性能损失?

Go
繁星淼淼 2023-02-06 18:58:01
我想知道在使用构建的生产环境中运行 go 程序是否有任何性能损失go build -race
查看完整描述

1 回答

?
烙印99

TA贡献1829条经验 获得超13个赞

您可以在https://go.dev/doc/articles/race_detector上描述 go race detector 的文章中阅读它

引用那篇文章(最后一段):

运行时开销

竞争检测的成本因程序而异,但对于典型程序,内存使用量可能增加 5-10 倍,执行时间可能增加 2-20 倍。

竞争检测器目前为每个延迟和恢复语句额外分配 8 个字节。在 goroutine 退出之前,这些额外的分配不会被回收。这意味着,如果您有一个长时间运行的 goroutine,它会定期发出 defer 和 recover 调用,程序内存使用量可能会无限增长。这些内存分配不会显示在 runtime.ReadMemStats 或 runtime/pprof 的输出中。


查看完整回答
反对 回复 2023-02-06
  • 1 回答
  • 0 关注
  • 81 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信