輕鬆入門Golang pprof實用不忽悠

2021-09-07 08:43:25 字數 2737 閱讀 3013

網上已搜尋golang pprof,資料不少,簡明高效的乙個沒看到,這篇文章5步教你用會pprof獲取cpu和記憶體prof。

go get github.com/pkg/profile
pprof生成的prof檔案時二進位制的,需要把這個二進位制的檔案轉換為我們人類可讀的,graphviz可以幫助我們把二進位制的prof檔案轉換為影象。mac安裝:

brew install graphviz
其他系統安裝參考這裡graphviz download。

只需要為hi.go增加這一行,defer profile.start().stop(),程式執行時,預設就會記錄cpu資料:

}編譯和執行hi.go

go build hi.go

./hi

應當看到類似的結果,它輸出了生成的cpu.pprof的路徑:

2018/11/07 19:47:21 profile: cpu profiling enabled, /var/folders/5g/rz16gqtx3nsdfs7k8sb80jth0000gn/t/profile046201825/cpu.pprof

sum= 49999995000000

2018/11/07 19:47:21 profile: cpu profiling disabled, /var/folders/5g/rz16gqtx3nsdfs7k8sb80jth0000gn/t/profile046201825/cpu.pprof

視覺化有多種方式,可以轉換為text、pdf、svg等等。text命令是

go tool pprof --text /path/to/yourbinary /var/path/to/cpu.pprof
結果是:

還有pdf這種效果更好:

go tool pprof --pdf /path/to/yourbinary /var/path/to/cpu.pprof > cpu.pdf
例子:

go tool pprof -pdf ./hi /var/folders/5g/rz16gqtx3nsdfs7k8sb80jth0000gn/t/profile046201825/cpu.pprof > cpu.pdf
效果:

5步已經結束,你已經學會使用cpu pprof了嗎?

如果你掌握了cpu pprof,mem pprof輕而易舉就能拿下,只需要改1行**:

defer profile.

start

(profile.memprofile)

.stop

()

效果:

go tool pprof -pdf ./hi /var/folders/5g/rz16gqtx3nsdfs7k8sb80jth0000gn/t/profile986580758/mem.pprof > mem.pdf

如果這篇文章對你有幫助,不妨關注下我的github,有文章會收到通知。

XSLT輕鬆入門

xslt輕鬆入門 zt xuly 發表於 2005 8 15 19 11 00 1.xslt的概念 1.1 什麼是xslt 1.2 為什麼要用xslt 1.3 xslt的歷史 1.4 什麼是xpath 1.5 xslt和css的比較 1.6 xslt和ie5 1.xslt的概念 我們首先來澄清乙個概...

python輕鬆入門

加減乘除與數 算相同,為取餘符號,為取整符號 例題 求1234的各個位置的數字之和 方法一 num 1234 ge num 10 shi num 100 10 bai num 100 10 qian num 1000 sum ge shi bai qian print num 方法二 num 123...

輕鬆入門GitHub使用

今天,我們的主題是 如何快速成為乙個github中近10k star的開源專案的參與者。首先,介紹一下本文的主角 乙個名為dress的開源專案。目前已經有123名貢獻者在這個名為dress的專案裡集結,上傳了上百張 照,收穫了7747餘顆星。一位貢獻者還專門在issues裡發帖 今天,我們都是參與過...