📝
GoのProfile-guided optimizationの使い方
本記事ではGo 1.20から利用できるようになったProfile-guided optimization(以下PGO)の、仕組みと使い方を短く簡単に紹介します。
PGOとはプログラム実行時の情報≒CPUプロファイルを用いて、そのプログラムのコンパイル時に最適化・高速化する仕組みです。プロファイル結果から、実行頻度の少ないコードの速度を犠牲に、実行頻度の多いコードの速度を向上させ、トータルとしての実行時間を短くする、というのが大まかな仕組みです。
PGOを有効化してコンパイルするにはビルド時に-pgo
オプションを指定します。-pgo
に指定できる値はCPUプロファイルのファイル名です。Go 1.20時点でのデフォルト値は-pgo=off
でPGOは無効化されています。他の特別な値として-pga=auto
を指定でき、その場合に参照するCPUプロファイルのファイル名はdefault.pgo
となります。
複数のプロファイル情報はgo tool pprof
コマンドでマージできます。
Discussion