go学习

Go 调试

2016-11-20  本文已影响176人  custa

Go的pprof使用

go tool pprof XXX cpu.prof

为golang程序使用pprof远程查看httpserver运行堆栈,cpu耗时等信息

go tool pprof http://localhost:6666/debug/pprof/profile

使用go tool pprof分析内存泄漏、CPU消耗

fm, err := os.Create("mem.prof")
if err != nil {
    log.Fatal(err)
}
pprof.WriteHeapProfile(fm)
fm.Close()

13.10 性能调试:分析并优化 Go 程序

在Go语言里检测内存泄漏

func saveHeapProfile() {
  runtime.GC()
  f, err := os.Create(fmt.Sprintf("prof/heap_%s_%d_%s.prof", progname, pid, time.Now().Format("2006_01_02_03_04_05")))
  if err != nil {
    return
  }
  defer f.Close()
  pprof.Lookup("heap").WriteTo(f, 1)
}

保存堆信息之前先GC了一下,以进行垃圾回收,之后保存下来的堆信息将更精确地告诉我们哪些地方可能会造成内存泄露,无法被垃圾回收的。

[golang]内存不断增长bytes.makeSlice

Golang使用pprof监控性能及GC调优

go profiling相关

提及 pkg/profile 包

Debugging performance issues in Go programs

Golang Slices And The Case Of The Missing Memory

golang profiling -- Yandong Yao

graphviz

官网:
http://www.graphviz.org/Download..php
SuSE:
http://download.opensuse.org/repositories/graphics/SLE_12/x86_64/graphviz-2.38.0-137.1.x86_64.rpm

上一篇下一篇

猜你喜欢

热点阅读