mcpField
R
rust-performance

rust-performance

github.com/full-stack-skills開発12135 回インストール5 週間前に更新
リポジトリ

rust-performance について

rust-performance は、Rust ソフトウェアの性能、メモリ、バイナリサイズ、ビルド時間を調査する開発者向けの測定・最適化スキルです。再現可能なベースラインと事前のプロファイリングを重視し、正しさと測定結果で改善を検証します。

主な機能

  1. 01ワークロードと性能指標の定義
  2. 02再現可能なベンチマークの確立
  3. 03CPU・メモリ・ビルドコストのプロファイリング
  4. 04測定済みボトルネックの最適化
  5. 05変更の検証とトレードオフの報告

活用シーン

  1. 01レイテンシやスループットの回帰調査
  2. 02アロケーションやヒープ保持コストの特定
  3. 03バイナリサイズやコンパイル時間の削減

インストール

コマンドをコピーしてターミナルで実行します。

$npx skills add https://github.com/full-stack-skills/rust-skills --skill rust-performance

インストール後、Claude Code で/rust-performanceを入力して読み込まれたか確認します。

同梱ファイル

SKILL.md と一緒にインストールされる参考資料やスクリプト。

agents/
openai.yaml
examples/
examples.md
examples/golden-performance/
Cargo.lock
Cargo.toml
examples/golden-performance/benches/
sum.rs
examples/golden-performance/src/
lib.rs
references/
benchmarking-and-regressions.md
cpu-and-latency-profiling.md
memory-size-and-compile-time.md
optimization-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. 結果を証明する

正しさのテストと、ベースラインとまったく同じ手順を再実行します。絶対値と相対値、ばらつき、ハードウェアとソフトウェアの状況、トレードオフ、二次的な指標での回帰を報告します。意図したしきい値を環境が確実に検出できる場合に限り、継続的に使用するベンチマークまたは予算を追加します。

完了基準

  • 代表的なワークロードと、ユーザーに見える指標を定義します。
  • 最適化の前に、再現可能なベースラインの証拠を記録します。
  • 推測ではなく、プロファイルを取得して支配的なコストを特定します。
  • 対象を絞ったテストを通じて、正確性と安全性を維持します。
  • 同じプロトコルで再測定し、不確実性とトレードオフを報告します。
  • 安定した回帰チェックを追加するか、環境のノイズが大きすぎる理由を説明します。

リソース

上流のソース

データのプライバシー

このスキルは、ユーザーデータの収集、保存、送信を行いません。プロファイル、ヒープダンプ、コマンドライン、シンボル、ベンチマークデータセットには機密情報が含まれる場合があります。共有する前に、保存およびアップロードのポリシーを確認してください。

コメント