パフォーマンステスト
rustc-perf
コンパイラのパフォーマンスを改善し、パフォーマンスのリグレッションを防ぐために、 多くの作業が行われています。
rustc-perf プロジェクトは、
パフォーマンスのテストと追跡のための複数のサービスを提供しています。
これは、ベンチマークをサービスとして実行するためのホストされたインフラストラクチャを提供します。
現時点では、x86_64-unknown-linux-gnu ビルドのみが追跡されています。
“perf run” は、多数の人気のあるクレートについて、異なる構成における コンパイラのパフォーマンスを比較するために使用されます。 異なる構成には、“fresh builds”、インクリメンタルコンパイルを用いたビルドなどが含まれます。
perf run の結果は、コンパイラの 2 つのバージョン間の比較 (それぞれのコミットハッシュによるもの)です。
rustc-perf を使用して、コンパイラを
ローカルで手動でベンチマークおよびプロファイルすることもできます。
自動 perf run
各 PR がマージされた後、コンパイラに対して一連のベンチマークが実行されます。 結果は https://perf.rust-lang.org/ Web サイトで時系列に追跡されます。 変更はすべて PR 上のコメントに記録されます。
手動 perf run
さらに、必要に応じて、PR がマージされる前にパフォーマンステストを実行できます。 PR がパフォーマンスに影響を与える可能性がある場合、 特に悪影響を与える可能性がある場合は、perf run をリクエストするべきです。
PR のパフォーマンスへの影響を評価するには、PR にこのコメントを書きます。
@bors try @rust-timer queue
注記: perf run の実行を許可されたユーザーのみが、このコメントを投稿できます。 それを使用できるチームは、Teams リポジトリの
[permissions]セクションにperf = trueの値で記録されています(bors 権限も必要です)。もしあなたが それらのチームのいずれにも属していない場合は、代わりに誰かに投稿してもらうよう 気軽に依頼してください(Zulip 上、または割り当てられたレビュー担当者に依頼してください)。
これにより、まず bors に “try” ビルドを実行するよう指示します。これは
x86_64-unknown-linux-gnu 向けの完全なリリースビルドを行います。
ビルドが完了すると、それに対してパフォーマンススイートを実行するためにキューに入れられます。
パフォーマンステストが完了すると、
bot が PR に概要と完全なレポートへのリンクを含むコメントを投稿します。
すでにビルド済みのアーティファクトに対して perf run を実行したい場合 (たとえば、まだベンチマークされていない以前の try ビルドに対して)は、代わりに次を実行できます。
@rust-timer build <commit-sha>
ただし、同じアーティファクトを 2 回ベンチマークすることはできません。
利用可能な perf bot コマンドの詳細については、 こちらを参照してください。
ベンチマークプロセス自体の詳細については、perf collector documentationを参照してください。