1. 程式人生 > >Golang pprof詳解

Golang pprof詳解

代碼 變量 run web 地方 127.0.0.1 暴露 部分 .gz

go的pprof包

go中有pprof包來做代碼的性能監控,在兩個地方有包:

net/http/pprof

runtime/pprof

其實net/http/pprof中只是使用runtime/pprof包來進行封裝了一下,並在http端口上暴露出來.

本篇只講如何在web上查看性能。

一、代碼部分

1.import 增加net/http/pprof包

import(
    _ net/http/pprof
)

2. 打開http 監聽端口

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

二、網頁上查看

*瀏覽器可以打開 http://127.0.0.1:10000/debug/pprof/ 可以查看各種profile索引

1.如果安裝過graphviz直接提交過這步驟,否則可以到 http://www.graphviz.org/download/下載,並把bin加入到環境變量

2.查看profile :在命令行輸入

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

此後的30秒進入收集profile信息的狀態。

30秒後進入pprof的交互模式,然後輸入

web

然後瀏覽器自動彈開到網頁展示svg圖

3.查看已經保存的profile文件

go tool pprof profile C:\Users\user\pprof\pprof.samples.cpu.004.pb.gz

然後也是進入pprof的交互模式,然後輸入web

還可以查看heap和goroutine

go tool pprof http://localhost:10000/debug/pprof/heap
go tool pprof http://127.0.0.1:10000/debug/pprof/goroutine 

  

Golang pprof詳解