golang pprof 内存分析

use pprof to get application  memory  useage 

add code in your main funciton

import (
 "log"
 _ "net/http/pprof"
)

func main() {
  go func() {
          log.Println(http.ListenAndServe("localhost:6060", nil))
  }()
}

build and compile you application.

 let application run and send request  then run 

#get  memory useage 
go tool pprof -inuse_space http://127.0.0.1:6060/debug/pprof/heap
go tool pprof ./yourbinaryname  localhost:6060/debug/pprof/profile

your can use help ,or  top N to get top  memory use function .

use "svg"  or "web"  to print  detail information .and need graphviz

sudo yum  install -y graphviz 

or mac 

brew install graphviz

if not generate svg ,down  tar file    and  use this command to get svg  ,after you can  open svg in  browser :

go tool pprof  /Downloads/mv-w.1/pprof.xxx.localhost:6060.samples.cpu.001.pb

if you are in production mode:

just use wget :  

wget http://localhost:9181/debug/pprof/heap
wget http://localhost:9181/debug/pprof/profile?seconds=100 -O profile-pprof

#then you can sz files to local and  generate  svg or png
go tool pprof  heap
go tool pprof profile-pprof


then input  svg/png/help;

  

原文地址:https://www.cnblogs.com/lavin/p/golang-pprof.html