我想知道在使用构建的生产环境中运行 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 的输出中。
- 1 回答
- 0 关注
- 81 浏览
添加回答
举报
0/150
提交
取消