是去分析"永远在"?

时间:2015-02-26 21:53:15

标签: go profiling

我想在我的Go程序中添加命令行标志,以启用/禁用cpu和内存分析。使用pprof.StartCPUProfile()显式启用CPU分析。但是未明确启用内存分析。你只需在退出时调用pprof.WriteHeapProfile()。如果我从不进行这些调用,是否存在与任何一种分析形式相关的运行时成本?如果没有,这是否意味着内存分析基本上始终开启?

1 个答案:

答案 0 :(得分:7)

默认情况下,MemProfileRate非零,但它设置的速率足够低,不会影响大多数程序。默认情况下它是打开的,这样如果程序的内存开始出现气球,就会有一些数据可以在不重新编译的情况下找到问题。

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