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
マイクロソフトやセールスフォースとPaaSで真っ向勝負に挑むサイボウズの思惑
IT関連
2023-05-26 05:04
Apple、WWDC21の基調講演を日本時間6月8日午前2時に開始
IT関連
2021-05-26 16:03
機械学習で事業価値を実際に引き出すには
IT関連
2023-01-20 18:54
著名人の3DCGモデルを作成→キャスティングするサービス サイバーエージェントが芸能事務所向けに開始
ネットトピック
2021-08-03 06:53
サーバサイドを含むWordPressのフルスタックをWebAssembly化した「In-Browser WordPress」、WordPressのコア開発チームとGoogle Chromeの開発チームが紹介
PHP
2023-04-14 07:11
IaaS障害、ユーザー企業はどう対処すればいい? クラウドベンダーが教える対応法と振り返り (1/2 ページ)
クラウドユーザー
2021-07-31 10:23
米国立研究所、核融合で画期的成果–投入量を上回るエネルギーを生成
IT関連
2022-12-15 21:37
「家系MAX」「すごい煮干し」も自宅で 冷凍自販機「RAMEN STOCK 24」、板橋と中野に登場
くらテク
2021-06-02 02:47
電子文書の利用を推進する諸制度の動きとテクノロジー–後編
IT関連
2021-01-25 14:11
低スキル求職者が自分で面接を予約、採用の時間・費用を削減する求人マーケットプレイスFrontier
HRテック
2021-07-13 21:04
「ChatGPT」「Bing Chat」「Google Bard」を比較–自分に最適な生成AIの選び方
IT関連
2023-10-28 16:12
社内に散らばる膨大なナレッジを検索できるサービス「Dashworks」
IT関連
2022-01-31 05:38
CTOなど技術幹部志向のITエンジニア対象、paizaでデジタルヘルス領域アイデアソンの参加者募集開始
ヘルステック
2021-06-23 23:03
ポケモンGO、6月は「フカマル」コミュデイ 人気ポケモンの大量発生に備える
くらテク
2021-05-29 09:01