...

パッケージ pprof

import "net/http/pprof"
概要
目次

概要 ▾

pprof パッケージは,pprof 視覚化ツールのフォーマットで HTTP サーバ ランタイムプロファイルデータを提供します。

パッケージは通常, HTTP ハンドラを登録するという副作用のためにのみインポートされます。 処理されるパスはすべて /debug/pprof/ で始まります。

pprof を使うには,このパッケージをあなたのプログラムにリンクさせてください。

import _ "net/http/pprof"

アプリケーションがまだ HTTP サーバーを実行していない場合は,開始する必要があります。 インポートに "net/http" と "log" を追加し,メイン関数に次のコードを追加します。

gofunc(){log.Println(http.ListenAndServe("localhost:6060" , nil))}()

次に, pprof ツールを使用してヒーププロファイルを調べます。

ツール pprof http://localhost:6060/debug/pprof/ ヒープに移動します。

あるいは, 30 秒の CPU プロファイルを見てください。

ツール pprof http://localhost:6060/debug/pprof/pro ファイル ?seconds=30 に移動します。

プログラムで runtime.SetBlockPro ファイル Rate を呼び出した後に,ゴルーチンブロッキングプロファイルを調べるには,次のようにします。

ツール pprof http://localhost:6060/debug/pprof/block に移動します。

または 5 秒間の実行トレースを収集するには

wget http://localhost:6060/debug/pprof/trace?seconds=5

プログラムで runtime.SetMutexPro ファイル Fraction を呼び出した後で,競合しているミューテックスの所有者を調べるには,次のようにします。

ツール pprof http://localhost:6060/debug/pprof/mutex に移動します。

利用可能なすべてのプロファイルを表示するには,ブラウザで http://localhost:6060/debug/pprof/ を開きます。

稼働中の施設については,次の Web サイトをご覧ください。

https://blog.golang.org/2011/06/profiling-go- プログラム s.html

func Cmdline

func Cmdline(w http.ResponseWriter, r *http.Request)

Cmdline は, NUL バイトで区切られた引数で,実行中のプログラムのコマンドラインでレスポンスします。 パッケージ初期化は /debug/pprof/cmdline としてそれを登録します。

func Handler

func Handler(name string) http.Handler

Handler は,名前付きプロファイルを提供する HTTP ハンドラを返します。

func Index

func Index(w http.ResponseWriter, r *http.Request)

インデックスは,リクエストによって指定された pprof 形式のプロファイルでレスポンスします。 たとえば, "/debug/pprof/ ヒープ " は " ヒープ " プロファイルを提供します。 Index は "/debug/pprof/" のリクエストにレスポンスして,利用可能なプロファイルをリストした HTML ページを表示します。

func Profile

func Profile(w http.ResponseWriter, r *http.Request)

プロファイルは pprof 形式の cpu プロファイルでレスポンスします。 プロファイリングは, seconds GET パラメータで指定された期間,または指定されていない場合は 30 秒間継続します。 パッケージ初期化は /debug/pprof/pro ファイルとしてそれを登録します。

func Symbol

func Symbol(w http.ResponseWriter, r *http.Request)

Symbol はリクエストにリストされているプログラムカウンタを調べ,プログラムカウンタを関数名にマッピングするテーブルでレスポンスします。 パッケージの初期化時に /debug/pprof/symbol として登録されます。

func Trace 1.5

func Trace(w http.ResponseWriter, r *http.Request)

トレースはバイナリ形式の実行トレースでレスポンスします。 トレースは seconds GET パラメーターで指定された期間,または指定されていない場合は 1 秒間継続します。 パッケージ初期化は /debug/pprof/trace としてそれを登録します。