golang の次のチュートリアル コラムでは、golang の pprof パッケージを使用してプログラムのパフォーマンス分析を実行する方法を紹介します。
golang は、golang プログラムのスタック、CPU 消費時間、その他のパフォーマンス情報を監視できる pprof パッケージを提供します。この pprof パッケージの使用法について話しましょう。 1. まず導入ですが、次の 2 か所で導入できます:
“net/http/pprof” "runtime/prof"
2. 次に、コード内で pprof を使用します。 実際のアプリケーションには 3 つの状況があります:
1)
プログラム自体が Web サーバーの場合は、コード
import( _"net/http/pprof" )
2)
Go プログラムが Web サーバーではなく、サービス プロセスである場合は、ゴルーチンを開く必要があります。ポートリスニングを有効にします。
例:
go func() { log.Println(http.ListenAndServe("localhost:6060", nil)) }()
3) プログラムが単なるアプリケーションの場合は、「runtime/ppprof」パッケージを使用する必要があります。
公式 Web サイトで提供されているコードは次のようなものです:
var cpuprofile = flag.String("cpuprofile", "", "write cpu profile to file") func main() { flag.Parse() if *cpuprofile != "" { f, err := os.Create(*cpuprofile) if err != nil { log.Fatal(err) } pprof.StartCPUProfile(f) defer pprof.StopCPUProfile() }
「net/http/pprof」パッケージを使用する場合は、go tools pprof コマンドを使用してプログラムの実行ステータスを表示することもできます。たとえば、単純な go サーバー プログラムを起動し、ポート 8080 をリッスンする場合、次のコマンドを使用して pprof コマンド ラインを入力できます:
このコマンドを使用してスタック情報を表示します:
go tool pprof http://localhost:6060/debug/pprof/heap 利用这个命令可以查看程序CPU使用情况信息: go tool pprof http://localhost:6060/debug/pprof/profile 使用这个命令可以查看block信息: go tool pprof http://localhost:6060/debug/pprof/block 进入pprof命令行,输入help,查看命令帮助, topN命令可以查看占用前N 的线程或者函数,用svg可以生成svg图。 pprof简单使用就是这样了,掌握了使用方法,在实践中加以利用才是我们的目的,希望我写的这些可以对你有所帮助。
以上がgolang の pprof パッケージを使用してプログラムのパフォーマンス分析を実行する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。