Rustコンパイラが「高速化」、Mozillaが比較データを公開コンパイル時間を比較

Mozillaは現在に至るまでRustコンパイラが順調に高速化していることを明らかにした。2019年の年初や2017年11月といった過去の時点のコンパイル時間と現在の性能を比較した。

» 2019年07月30日 17時00分 公開
[@IT]

この記事は会員限定です。会員登録(無料)すると全てご覧いただけます。

 オープンソースのシステムプログラミング言語「Rust」プロジェクトを支援するMozillaは2019年7月25日(米国時間)、Rustコンパイラが順調に高速化していることを明らかにした。Mozillaに所属する技術者Nicholas Nethercote氏が、Mozilla Blogで数値を公開している。

 現在のRustコンパイラがコンパイルに必要とする時間を、2019年初頭の版や2017年11月の版と比較した結果だ。

 Rustのロードマップでは、2019年の重要テーマは「成熟」となっている。このテーマにはさまざまなトピックが含まれる。中でも極めて重要なトピックの一つがコンパイル時間だという。

2019年1月と比較すると99%のテストでコンパイル速度が向上

 Mozillaは、Rustのパフォーマンス追跡に使われる標準的なベンチマークプログラムのコンパイル時間を公開した。2019年1月1日と2019年7月24日(直近のデータの日付)で比較した結果を変化率で示したものだ。

2019年7月26日版と同1月1日版のコンパイラの性能を比較した(クリックで全体を表示、出典:Mozilla

 この図は何を意味しているのだろうか。

 図では、29種類のベンチマークプログラムのコンパイルにかかった実時間を比較している。各ベンチマークプログラムについて、デバッグビルド(debug)と最適化ビルド(opt)、チェックビルド(check、エラーを検出するが、コードを生成しない)という3種類のビルドでコンパイル時間を測定した。それぞれのコンパイルでは比較的高速なインクリメンタルコンパイルとそうでないコンパイルの両方が含まれている。

 「avg」列は、各ビルドタイプの「コンパイル時間の変化率」を平均で示している。「min」列と「max」列はそれぞれ、「各ビルドタイプのコンパイル時間の減少率から、最も良い値(減少率の最大値)」と、「各ビルドタイプのコンパイル時間の減少率から、最も悪い値(減少率の最小値、または増加率の値)」を示している(個々のコンパイル時間などを示す表は、関連リンクを参照)。

 この図には261の数字が含まれるが、このうち258はマイナスの数字だ。つまりコンパイル時間がほとんどの場合に減少したことを示している。

 「avg」列の値のほとんどは、−20〜−40%の範囲にある。「min」列の値(減少率の最大値)は−12.4〜−51.3%にわたっている。「max」列の値(ほとんどの場合、減少率の最小値)も、大抵は−10%より良い数字だ。

2017年11月からのコンパイル速度の向上は2倍弱

 入手可能な最も古いデータである2017年11月12日時点のベンチマーク結果と2019年7月24日の結果比較すると、性能の改善傾向がよりはっきりする(個々のコンパイル時間などを示す表は、関連リンクを参照)。

2019年7月26日版と2017年11月12日版のコンパイラの性能を比較した(クリックで全体を表示、出典:Mozilla

 2017年時点のベンチマークデータは現在のデータよりも量が少ない。コンパイル時間が測定されたベンチマークプログラムの数は18であり、チェックビルドのコンパイル時間を測定していないからだ。

 Nethercote氏によれば、結果の平均値を「トータルに」捉えると42%の改善に相当するという。2倍の高速化まであとわずかというところだ。

 先ほどの比較と今回の比較を並べると、2017年11月から現在までの約20カ月間の方が、全体的にコンパイル時間の減少率、つまりコンパイル速度の向上率が大きいと分かる。具体的には、「avg」列の値は−19.9〜−61.3%であり、「min」列の値は、ほとんどが−60%より良い(絶対値が大きい)数字となっている。

 「これは良いニュースだ。Rustコンパイラは以前から遅いといわれてきた。Rustコンパイラは高速だとまでは言わないが、以前より大幅に速くなっていることは明らかだ。この進化に貢献した全ての開発者に感謝をお伝えしたい」(Nethercote氏)

Copyright © ITmedia, Inc. All Rights Reserved.

スポンサーからのお知らせPR

注目のテーマ

Microsoft & Windows最前線2025
AI for エンジニアリング
ローコード/ノーコード セントラル by @IT - ITエンジニアがビジネスの中心で活躍する組織へ
Cloud Native Central by @IT - スケーラブルな能力を組織に
システム開発ノウハウ 【発注ナビ】PR
あなたにおすすめの記事PR

RSSについて

アイティメディアIDについて

メールマガジン登録

@ITのメールマガジンは、 もちろん、すべて無料です。ぜひメールマガジンをご購読ください。