この記事の要点
- Swift の ベンチマークスイート(benchmark suite) がオープンソースとして公開されました。Swift のパフォーマンスを追跡し、変更が反映される前にパフォーマンスのリグレッションを検出することを目的としたものです。
- スイートには、75 個のベンチマーク、ベンチマークに必要な共通機能を提供するライブラリ、ベンチマークを実行してパフォーマンス指標を表示するドライバ、Swift のバージョン間で指標を比較するユーティリティが含まれます。
- Swift プロジェクトへのコントリビュータは、pull request を出す前にこのスイートを自分の変更に対して実行することが推奨されます。将来的には CI でも pull request に対してベンチマークを実行する対応が予定されていました。
何が発表されたのか
Apple の Swift チームから、Swift のベンチマークスイートがオープンソース化されたことが発表されました。このスイートは、Swift のパフォーマンスを追跡し、変更がコミットされる前にパフォーマンスのリグレッション(性能低下)を捕捉できるようにするためのものです。
含まれる主な要素は次のとおりです。
- 75 個のベンチマーク: Swift の重要なワークロードを幅広くカバーします。
- ライブラリ: ベンチマークでよく必要になる関数群を提供します。
- ドライバ: ベンチマークを実行し、パフォーマンス指標を表示します。
- 比較ユーティリティ: Swift のバージョン間でベンチマークの指標を比較できます。
何に使えるのか
Swift プロジェクトへのコントリビュータは、pull request を出す前に、自分の変更に対してこのベンチマークスイートを実行することが推奨されます。これにより、パフォーマンスのリグレッションを事前に捕捉できます。ビルドと実行の手順は swift/benchmark/README.md に記載されています。
新しいベンチマークやヘルパーライブラリの追加など、スイートへのコントリビューションも歓迎されています。ただし、Swift のベンチマークスイートは Swift プロジェクト本体と同じライセンスを共有するため、他のライセンスで保護されたベンチマークの Swift 移植は受け入れられない点に注意が必要です。
導入・今後の位置づけ
この記事の時点では、今後の対応として、Swift の継続的インテグレーション(CI) システムに pull request に対するベンチマーク実行のサポートを追加することが計画されていました。これは、変更を反映する前にパフォーマンスのリグレッションをコミュニティ全体で検出していくための取り組みです。
Swift がオープンソース化された直後のこのベンチマークスイート公開は、CI の導入と並んで、Swift を可能な限り高速に保つための開発基盤づくりの一環でした。