Rustコンパイラが「高速化」、Mozillaが比較データを公開:コンパイル時間を比較
Mozillaは現在に至るまでRustコンパイラが順調に高速化していることを明らかにした。2019年の年初や2017年11月といった過去の時点のコンパイル時間と現在の性能を比較した。
オープンソースのシステムプログラミング言語「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日(直近のデータの日付)で比較した結果を変化率で示したものだ。
この図は何を意味しているのだろうか。
図では、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日の結果比較すると、性能の改善傾向がよりはっきりする(個々のコンパイル時間などを示す表は、関連リンクを参照)。
2017年時点のベンチマークデータは現在のデータよりも量が少ない。コンパイル時間が測定されたベンチマークプログラムの数は18であり、チェックビルドのコンパイル時間を測定していないからだ。
Nethercote氏によれば、結果の平均値を「トータルに」捉えると42%の改善に相当するという。2倍の高速化まであとわずかというところだ。
先ほどの比較と今回の比較を並べると、2017年11月から現在までの約20カ月間の方が、全体的にコンパイル時間の減少率、つまりコンパイル速度の向上率が大きいと分かる。具体的には、「avg」列の値は−19.9〜−61.3%であり、「min」列の値は、ほとんどが−60%より良い(絶対値が大きい)数字となっている。
「これは良いニュースだ。Rustコンパイラは以前から遅いといわれてきた。Rustコンパイラは高速だとまでは言わないが、以前より大幅に速くなっていることは明らかだ。この進化に貢献した全ての開発者に感謝をお伝えしたい」(Nethercote氏)
Copyright © ITmedia, Inc. All Rights Reserved.
関連記事
- Microsoft、安全で高効率のプログラミング言語として「Rust」を高く評価
Microsoft Security Response Center(MSRC)は、ソフトウェアのセキュリティ確保と効率性の両方の要件を満たす最も有望なシステムプログラミング言語の一つとして、「Rust」を高く評価した。メモリ破壊バグをそもそも作り込まないことでセキュリティを確保できるという。 - Microsoftが「Rust」言語を導入、安全性以外の理由あり(続報)
Microsoft Security Response Center(MSRC)は、C/C++に代わるシステムプログラミング言語の最有力の選択肢として「Rust」を挙げ、その理由を解説した。合わせてMicrosoftのような大規模なコードベースを持つ企業にとっての課題も示した。 - 世界の開発者の実態は? Stack Overflowが2019年版の調査結果を公開
開発者向けQ&Aサイト「Stack Overflow」は、開発者に対する「世界で最も大規模かつ包括的な」年次調査結果を発表した。最も愛されている言語はRust、次いでPythonとTypeScript。最も高給取りだったのはサイト信頼性エンジニアとDevOpsの専門家だった。開発職に希望を感じている国は西欧諸国ではなく、中国や東欧諸国だった。