Go 分析 "always on" 吗?

Is Go profiling "always on"?

我想将命令行标志添加到我的 Go 程序以 enable/disable cpu 和内存分析。 CPU 使用 pprof.StartCPUProfile() 显式启用分析。但是没有明确启用内存分析。您只需在退出时调用 pprof.WriteHeapProfile() 即可。如果我从不进行这些调用,是否会产生与任何一种分析形式相关的运行时成本?如果不是,那是否意味着内存分析基本上一直处于开启状态?

MemProfileRate 默认为非零值,但它设置的速率足够低,不会影响大多数程序。它在默认情况下处于打开状态,因此如果程序的内存开始膨胀,将有一些数据可以在不重新编译的情况下找到问题。

在go1.5中会有一个新的GODEBUG标志memprofilerate,因此可以通过环境变量来改变它。设置 memprofilerate=0 将禁用内存分析。 http://tip.golang.org/pkg/runtime/