go 应用程序性能测试

我们要加入对pprof包里的方法调用,程序才能将运行时候程序的堆内存分配状态记录到文件(也可以是写到其他地方,例如网络等)中,以便进一步的分析.

如果你的go程序只是一个应用程序,比如计算fabonacci数列,那么你就不能使用net/http/pprof包了,你就需要使用到runtime/pprof。具体做法就是用到pprof.StartCPUProfile和pprof.StopCPUProfile。(Go语言的pprof是Google C++ profiler的移植.)

比如下面的例子:

1:

   2: import (
   7: )
   8:  
)
  10:  
  11: func main() {
  12:  
  13:     flag.Parse()
 {
  15:         f, err := os.Create(*cpuprofile)
if err != nil {
  17:             fmt.Println(err)
  18:         }
  19:         pprof.StartCPUProfile(f)
  20:         defer pprof.StopCPUProfile()
  21:     }
// ...
  23: }