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:/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./pprof.xxx.localhost:.samples.cpu..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;