主页

索引

模块索引

搜索页面

runtime/pprof(工具型应用)

cpu:

使用: runtime/pprof
具体做法就是用到pprof.StartCPUProfile和pprof.StopCPUProfile
比如下面的例子:
  var cpuprofile = flag.String("cpuprofile", "", "write cpu profile to file")
  func main() {
      flag.Parse()
      if *cpuprofile != "" {
          f, err := os.Create(*cpuprofile)
          if err != nil {
              log.Fatal(err)
          }
          pprof.StartCPUProfile(f)
          defer pprof.StopCPUProfile()
      }
      xxxx
      xxxx
  }

运行程序的时候加一个--cpuprofile参数,比如:
$ fabonacci --cpuprofile=cpu.prof   // 这样程序运行的时候的cpu信息就会记录到XXX.prof中了
下一步就可以使用这个prof信息做出性能分析图了(需要安装graphviz)

堆内存:

func main() {
    f, err := os.OpenFile("heap.prof", os.O_RDWR|os.O_CREATE, 0644)
    if err != nil {
        log.Fatal(err)
    }
    defer f.Close()

    time.Sleep(30 * time.Second)

    pprof.WriteHeapProfile(f)
    fmt.Println("Heap Profile generated")
}

使用:

$ go tool pprof <二进制文件> cpu.prof
$ go tool pprof <二进制文件> heap.prof

主页

索引

模块索引

搜索页面