Go Wiki: PGO Tools

Goツールチェインにおけるプロファイル・ガイド付き最適化(PGO)は、CPU pprofプロファイルをPGOプロファイル形式として使用します。pprofは多くのツールで広く使われている形式ですが、GoのPGOはプロファイルのコンテンツに特定の要件を課しており、エコシステム内の多くのツールと互換性がない場合があります。

この(網羅的ではない)ページでは、PGOと互換性があることが知られているプロファイル収集および作業ツールをリストアップしています。

プロファイルの収集

  • runtime/pprofnet/http/pprof: Go標準ライブラリのプロファイリング機能は、常にPGO互換プロファイルを提供します。
  • Parca Agentは、Polar Signals Cloudやバージョンv0.19.0以降のParcaなど、関数開始行を含むメタデータを生成するシンボライザと組み合わせると、PGO互換プロファイルを生成します。

プロファイルの操作

  • go tool pprof/スタンドアロン pprof CLIgithub.com/google/pprof/profile: 公式のpprof CLIおよびGoパッケージは、プロファイルに対して様々な操作(フィルタリング、複数のプロファイルの結合など)を実行できます。これらのツール/パッケージは、通常、操作全体にわたってメタデータ(例:シンボライゼーション、関数開始行)をそのまま保持します。したがって、PGO互換の入力を与えれば、PGO互換の出力を生成するはずです。
  • ParcaPolar Signals Cloudは、プロファイリングデータのクエリとフィルタリング、およびクエリ結果のpprofファイルとしてのダウンロードに様々なメカニズムを提供しており、ダウンロードされたpprofファイルには、PGO互換となる関数開始行のメタデータが含まれます。

このコンテンツはGo Wikiの一部です。