ホームページ > バックエンド開発 > Golang > golang の pprof パッケージを使用してプログラムのパフォーマンス分析を実行する方法

golang の pprof パッケージを使用してプログラムのパフォーマンス分析を実行する方法

藏色散人
リリース: 2020-11-25 15:12:02
転載
2860 人が閲覧しました

golang の次のチュートリアル コラムでは、golang の pprof パッケージを使用してプログラムのパフォーマンス分析を実行する方法を紹介します。

golang の pprof パッケージを使用してプログラムのパフォーマンス分析を実行する方法

golang は、golang プログラムのスタック、CPU 消費時間、その他のパフォーマンス情報を監視できる pprof パッケージを提供します。この pprof パッケージの使用法について話しましょう。

1. まず導入ですが、次の 2 か所で導入できます:

“net/http/pprof”
 "runtime/prof"
ログイン後にコピー

このうち、"net/http/pprof" は "runtime/pprof" とパッケージ化されており、 httpポートが公開されているので、ブラウザ上でプログラムのパフォーマンス解析を閲覧できるようになります。 "runtime/pprof" は *.pprof ファイルを生成し、このファイルに基づいてパフォーマンス分析を実行できます。

2. 次に、コード内で pprof を使用します。 実際のアプリケーションには 3 つの状況があります:
1)
プログラム自体が Web サーバーの場合は、コード

import(
_"net/http/pprof"
 )
ログイン後にコピー

を通じて pprof を導入するだけで済み、ブラウザで http://localhost:port/debug/pprof/ にアクセスします。 CPU 使用率やメモリ使用率などを含む、Web サービスの現在のステータス。

2)
Go プログラムが Web サーバーではなく、サービス プロセスである場合は、ゴルーチンを開く必要があります。ポートリスニングを有効にします。
例:

go func() {
         log.Println(http.ListenAndServe("localhost:6060", nil)) 
 }()
ログイン後にコピー

同様に http://localhost:6060/debug/pprof にアクセスして、プログラムの実行情報を表示します。

3) プログラムが単なるアプリケーションの場合は、「ru​​ntime/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()
     }
ログイン後にコピー

そして、このプログラムを実行するときに、パラメーター --cpuprofile=*.prof を追加して、対応するファイルにパラメーターを生成します。 .pprof ファイルとプログラムの実行情報はすべてこのファイル内にあります。次に、対応するディレクトリに入り、コマンド go tool pprof を実行します。生成された pprof ファイルのコマンドを追加して pprof に入り、Web コマンドを入力して、対応する svg ファイルを生成します。

2 番目の方法:

「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简单使用就是这样了,掌握了使用方法,在实践中加以利用才是我们的目的,希望我写的这些可以对你有所帮助。
ログイン後にコピー

ps ; なぜなら、私は実際に golang で大規模なプログラムを書いたことも、このパッケージを実際に使用したこともなく、いくつかの記事を読んで公式 Web サイトの情報をまとめただけなので、形而上学的な間違いを犯すことは避けられません。修正は大歓迎です!ありがとう######

以上がgolang の pprof パッケージを使用してプログラムのパフォーマンス分析を実行する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:csdn.net
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート