Go Wiki: PGOツール
Goツールチェーンのプロファイルに基づく最適化(PGO)は、CPU pprofプロファイルをPGOプロファイル形式として使用します。pprofは多くのツールで広く使用されている形式ですが、GoのPGOはプロファイルの内容に特定の要件を課しており、エコシステム全体の多くのツールはこれと互換性がない可能性があります。
このページ(網羅的ではありません)には、PGOと互換性があるとわかっているプロファイルを収集および操作するためのツールがリストされています。
プロファイルの収集
runtime/pprof
、net/http/pprof
:Go標準ライブラリのプロファイリング機能は、常にPGO互換のプロファイルを提供します。- Parca Agentは、関数の開始行を含むメタデータを生成するシンボライザー(Polar Signals Cloudやバージョン
v0.19.0
以降のParcaなど)と組み合わせることで、PGO互換のプロファイルを生成します。
プロファイルの操作
go tool pprof
/スタンドアロンのpprof
CLI、github.com/google/pprof/profile
:公式のpprof
CLIとGoパッケージは、プロファイルに対してさまざまな操作(フィルタリング、複数プロファイルのマージなど)を実行できます。これらのツール/パッケージは、一般的に操作全体でメタデータ(例:シンボル化、関数の開始行)をそのままにします。したがって、PGO互換の入力が与えられれば、PGO互換の出力が生成されるはずです。- ParcaとPolar Signals Cloudは、プロファイリングデータをクエリおよびフィルタリングし、クエリをPGO互換となる関数の開始行メタデータを含むpprofファイルとしてダウンロードするためのさまざまなメカニズムを提供します。
このコンテンツはGo Wikiの一部です。