Go言語が実行時のプロファイラ情報でコンパイルを最適化する「Profile-guided optimization」パブリックプレビュー

今回は「Go言語が実行時のプロファイラ情報でコンパイルを最適化する「Profile-guided optimization」パブリックプレビュー」についてご紹介します。

関連ワード (メモリ、利用、手法等) についても参考にしながら、ぜひ本記事について議論していってくださいね。

本記事は、Publickey様で掲載されている内容を参考にしておりますので、より詳しく内容を知りたい方は、ページ下の元記事リンクより参照ください。


Go言語の開発チームは2月1日にリリースしたGo 1.20で、実行時のプロファイラ情報を用いてコンパイルを最適化し、実行速度の改善を図る「Profile-guided optimization」機能のパブリックプレビューを開始しましたことを明らかにしました。

fig

Profile-guided optimizationを用いることで、現時点で2%から4%程度の性能向上が得られ、将来的にはさらに大きな性能向上を実現できるとしています。

Go 1.20 marks the launch of profile-guided optimization into public preview!

PGO is a compiler optimization technique that feeds information gathered at runtime back into the compiler for the next build of the application.

Details ⬇ https://t.co/aBJgDIAbqy

— Go (@golang) February 8, 2023

Profile-guided optimization(PGO)とは

Profile-guided optimizationとは、プログラムの実行時にどの関数が何回コールされたか、プロセッサやメモリをどのように使用しているかなど、プログラムの実行状況をプロファイル情報として取得し、その情報を基にコンパイルを最適化する手法です。Feedback Directed Optimizationなどとも呼ばれます。

具体的には、何度も呼ばれる関数をインライン展開することで関数呼び出しのオーバーヘッドをなくす、変数の使用頻度によってレジスタへの割り当てを変更する、ループを展開する、などの処理がコンパイル時に行われます。

コンパイルの最適化手法としては以前から存在しており、例えばRustにはすでにProfile-guided optimization機能がありますし、GoogleはChromeブラウザをProfile-guided optimizationによって15%程度高速化したことを2016年に明らかにしています。

Goランタイムのプロファイルをコンパイラに渡す

今回プレビューリリースされたGoのProfile-guided optimization機能も、Goランタイムで生成されたプロファイルをGoコンパイラに渡すことで、コンパイル時にプロファイル情報を基にした最適化が行われます。

ドキュメントによると、現時点で2%から4%程度の性能向上が得られ、将来的にはさらに大きな性能向上を実現できるとしていますが、まだプレビューリリースのため本番環境での利用には向かないともしています。

COMMENTS


Recommended

TITLE
CATEGORY
DATE
「Rancher Desktop 1.13」で、WebAssemblyを実験的サポート開始
Docker
2024-03-15 05:31
2028年までにエンタープライズソフトウェアエンジニアの75%がAIコードアシスタントを利用するとの予測。ガートナー
プログラミング言語
2024-04-12 01:32
AIでユニットテストを自動生成。リファクタリング、ドキュメントの生成、バグの検出なども行う「Refraction」登場
.NET
2023-01-24 15:56
高度成長期の“働く自転車”再現 「ニューマルキン号」100台限定販売
くらテク
2021-05-09 21:28
マイクロソフト「Teams」でセールスフォースのデータにアクセス可能に
IT関連
2021-07-09 09:02
Zoom、メール/カレンダー統合など各種新機能を発表
IT関連
2022-11-10 12:06
BBIX、レイヤー2の閉域接続サービスを開始–マルチクラウドに対応
IT関連
2022-06-01 20:08
はてなと集英社がWeb漫画の投稿サービス 広告や有料配信でマネタイズ可 収入の65〜80%を作者に還元
アプリ・Web
2021-04-22 19:47
ContractS、「ContractS CLM」で「Slack」からの契約作成依頼・相談を可能に
IT関連
2024-02-07 22:56
Google Workspace(旧G Suite)に「Googleアシスタント」対応や「Focus Time」などの新機能
アプリ・Web
2021-03-03 02:57
「Raspberry Pi RP2040」搭載「Flipper Zero」用ゲームモジュール–DVI出力を可能に
IT関連
2024-02-16 18:02
セーフィーのウェアラブルカメラSafie Pocket2を千葉県八千代市消防本部が試験導入、訓練形式の人命救助実証試験
IT関連
2022-03-10 02:01
初代ゲームボーイでビットコイン採掘に挑んだハッカー、人気の単語当てゲームWordleを初代に移植
IT関連
2022-02-09 16:30
公取委、行政システム受注の「囲い込み」を調査
IT関連
2021-06-11 05:36