?
This document uses PHP Chinese website manual Release
import "net/http/pprof"
概述
索引
軟件包pprof通過其HTTP服務(wù)器運行時分析數(shù)據(jù)以pprof可視化工具預(yù)期的格式提供服務(wù)。
該軟件包通常只是為了注冊HTTP處理程序的副作用而導(dǎo)入。處理路徑全部以/debug/pprof/開頭。
要使用pprof,請將此軟件包鏈接到您的程序中:
import _ "net/http/pprof"
如果您的應(yīng)用程序尚未運行http服務(wù)器,則需要啟動一個。將“net/http”和“l(fā)og”添加到您的導(dǎo)入,并將以下代碼添加到主函數(shù)中:
go func() { log.Println(http.ListenAndServe("localhost:6060", nil))}()
然后使用pprof工具查看堆配置文件:
go tool pprof http://localhost:6060/debug/pprof/heap
或者查看30秒鐘的CPU配置文件:
go tool pprof http://localhost:6060/debug/pprof/profile
或者在程序中調(diào)用runtime.SetBlockProfileRate之后查看goroutine阻止配置文件:
go tool pprof http://localhost:6060/debug/pprof/block
或者收集5秒鐘的執(zhí)行軌跡:
wget http://localhost:6060/debug/pprof/trace?seconds=5
或者在程序中調(diào)用runtime.SetMutexProfileFraction之后查看爭用互斥鎖的持有者:
go tool pprof http://localhost:6060/debug/pprof/mutex
要查看所有可用的配置文件,請在瀏覽器中打開http://localhost:6060/debug/pprof/。
欲了解該設(shè)施的實際情況,請訪問
https://blog.golang.org/2011/06/profiling-go-programs.html
func Cmdline(w http.ResponseWriter, r *http.Request)
func Handler(name string) http.Handler
func Index(w http.ResponseWriter, r *http.Request)
func Profile(w http.ResponseWriter, r *http.Request)
func Symbol(w http.ResponseWriter, r *http.Request)
func Trace(w http.ResponseWriter, r *http.Request)
pprof.go
func Cmdline(w http.ResponseWriter, r *http.Request)
Cmdline用正在運行的程序的命令行響應(yīng),參數(shù)用NUL字節(jié)分隔。軟件包初始化將其注冊為/debug/pprof/cmdline。
func Handler(name string) http.Handler
處理程序返回一個HTTP處理程序來提供指定的配置文件。
func Index(w http.ResponseWriter, r *http.Request)
索引使用請求命名的pprof格式的配置文件進行響應(yīng)。例如,“/debug/pprof/heap”服務(wù)于“堆”配置文件。索引通過列出可用配置文件的HTML頁面響應(yīng)“/debug/pprof/”的請求。
func Profile(w http.ResponseWriter, r *http.Request)
配置文件使用pprof格式的cpu配置文件進行響應(yīng)。軟件包初始化將其注冊為/debug/pprof/profile。
func Symbol(w http.ResponseWriter, r *http.Request)
Symbol查找請求中列出的程序計數(shù)器,并使用表映射程序計數(shù)器響應(yīng)函數(shù)名稱。軟件包初始化將其注冊為/ /debug/pprof/symbol。
func Trace(w http.ResponseWriter, r *http.Request)
Trace以二進制形式執(zhí)行跟蹤。跟蹤持續(xù)時間指定以秒為單位的GET參數(shù),如果未指定,則持續(xù)1秒。軟件包初始化將其注冊為/debug/pprof/trace。