rust-performance について
rust-performance は、Rust ソフトウェアの性能、メモリ、バイナリサイズ、ビルド時間を調査する開発者向けの測定・最適化スキルです。再現可能なベースラインと事前のプロファイリングを重視し、正しさと測定結果で改善を検証します。
主な機能
- 01ワークロードと性能指標の定義
- 02再現可能なベンチマークの確立
- 03CPU・メモリ・ビルドコストのプロファイリング
- 04測定済みボトルネックの最適化
- 05変更の検証とトレードオフの報告
活用シーン
- 01レイテンシやスループットの回帰調査
- 02アロケーションやヒープ保持コストの特定
- 03バイナリサイズやコンパイル時間の削減
インストール
コマンドをコピーしてターミナルで実行します。
npx skills add https:/ / github.com/ full-stack-skills/ rust-skills --skill rust-performanceインストール後、Claude Code で/rust-performanceを入力して読み込まれたか確認します。
同梱ファイル
SKILL.md と一緒にインストールされる参考資料やスクリプト。
agents/openai.yamlexamples/examples.mdexamples/golden-performance/Cargo.lockCargo.tomlexamples/golden-performance/benches/sum.rsexamples/golden-performance/src/lib.rsreferences/benchmarking-and-regressions.mdcpu-and-latency-profiling.mdmemory-size-and-compile-time.mdoptimization-workflow.md詳細
Rust のパフォーマンス
証拠に基づいて最適化します。ユーザーに見える指標を定義し、ワークロードを再現して、安定したベースラインを確立し、支配的なコストをプロファイルします。その原因を一つ変更し、正しさと改善の両方を証明します。
対象範囲と振り分け
マイクロベンチマーク、エンドツーエンドの負荷テスト、CPU プロファイル、割り当てとヒープの分析、バイナリサイズ、コンパイル時間、キャッシュ動作、回帰予算には、このスキルを使用します。
並行性のセマンティクスは rust-concurrency に、テレメトリパイプラインは rust-observability に、一般的なテストアーキテクチャは rust-testing に、リリースプロファイルと機能は rust-cargo-build に、セマンティクスのレビューは rust-code-review に振り分けます。
ワークフロー
1. パフォーマンスの契約を定義する
ワークロード、データセット、入力、並行性、プラットフォーム、CPU とメモリの上限、ツールチェーン、ターゲット、機能、アロケーター、ビルドプロファイル、ウォームアップ、キャッシュ状態、成功指標を記録します。スループットと p50/p95/p99 のレイテンシを区別し、定常状態と起動時またはシャットダウン時を区別します。
実際の問題を表しているのでない限り、デバッグビルドや合成入力を最適化しないでください。
2. 再現可能なベースラインを確立する
- ベンチマークの前に正しさを確認します。
- 最適化設定、コード生成単位、LTO、パニック戦略、ターゲット CPU 設定を意図的に選び、リリースビルドに近い設定を使用します。
- バックグラウンド負荷、電力管理、サーマルスロットリング、共有ランナーのノイズを排除します。
- 平均値を一つだけ記録するのではなく、生の測定値と不確実性を記録します。
- 小さな回帰を検出する場合は、同じコミット、ツールチェーン、依存関係グラフ、ハードウェアで比較します。
ベンチマークと回帰ゲートを参照してください。
3. 測定レイヤーを選ぶ
| 質問 | ツールまたは証拠 |
|---|---|
| 純粋な処理は速くなりましたか? | Criterion または Divan のマイクロベンチマーク |
| 命令レベルのコストは変わりましたか? | 対応システムでの iai-callgrind |
| CPU 時間はどこで使われていますか? | samply、cargo-flamegraph、Instruments、perf、pprof |
| 割り当てはどこに保持されていますか? | DHAT、ヒーププロファイラー、アロケーターのメトリクス |
| バイナリが大きい理由は何ですか? | cargo-bloat と機能の調査 |
| コンパイル時間に影響する要因は何ですか? | Cargo のビルド時間と cargo-llvm-lines |
| サービスは SLO を満たしていますか? | 代表的な負荷テストとオブザーバビリティ |
マイクロベンチマークだけでは、エンドツーエンドのレイテンシ、過負荷時の動作、メモリ上限は証明できません。
4. 編集前にプロファイルする
問題が発生するワークロードでプロファイルを取得します。シンボルを保持し、比較対象として想定するものと同じ最適化済みアーティファクトを使用します。CPU 上の処理、待機、ロック競合、I/O、割り当て、ページフォールト、スケジューラーのオーバーヘッドを切り分けます。CPU とレイテンシのプロファイリングを参照してください。
5. 支配的な原因を最適化する
一般的な変更には、アルゴリズムの計算量の改善、パス数の削減、バッチ処理の改善、解析や割り当ての繰り返しの回避、クローンの代わりに借用すること、データレイアウトの改善、同期の削減、上限付きキュー、ストリーミング、機能の削減、CPU 処理の非同期ワーカーからの切り離しがあります。
より単純な変更では不十分であり、不変条件とフォールバック動作をテストできる場合を除き、unsafe、カスタムアロケーター、SIMD、ロックフリー構造、キャッシュを使用しないでください。
6. メモリ、サイズ、ビルドコストを測定する
ピーク RSS、保持ヒープ、割り当て率、断片化、キャッシュの増加、バッファーの上限、バイナリの各セクション、モノモーフィゼーション、デバッグ情報、有効な機能、マクロ展開、インクリメンタルコンパイルとクリーンコンパイルの所要時間を追跡します。メモリ、バイナリサイズ、コンパイル時間を参照してください。
7. 結果を証明する
正しさのテストと、ベースラインとまったく同じ手順を再実行します。絶対値と相対値、ばらつき、ハードウェアとソフトウェアの状況、トレードオフ、二次的な指標での回帰を報告します。意図したしきい値を環境が確実に検出できる場合に限り、継続的に使用するベンチマークまたは予算を追加します。
完了基準
- 代表的なワークロードと、ユーザーに見える指標を定義します。
- 最適化の前に、再現可能なベースラインの証拠を記録します。
- 推測ではなく、プロファイルを取得して支配的なコストを特定します。
- 対象を絞ったテストを通じて、正確性と安全性を維持します。
- 同じプロトコルで再測定し、不確実性とトレードオフを報告します。
- 安定した回帰チェックを追加するか、環境のノイズが大きすぎる理由を説明します。
リソース
- ベンチマークと回帰ゲート
- CPU とレイテンシのプロファイリング
- メモリ、バイナリサイズ、コンパイル時間
- 最適化ワークフロー
- 実行シナリオ
examples/golden-performance/:コンパイル済みの Criterion ベンチマークターゲット。
上流のソース
データのプライバシー
このスキルは、ユーザーデータの収集、保存、送信を行いません。プロファイル、ヒープダンプ、コマンドライン、シンボル、ベンチマークデータセットには機密情報が含まれる場合があります。共有する前に、保存およびアップロードのポリシーを確認してください。