mcpField
E
elixir-performance-review

elixir-performance-review

github.com/existential-birdsテスト・品質85101 回インストール11 週間前に更新
リポジトリ

elixir-performance-review について

Elixirコードの性能を評価するレビュー用スキルです。GenServer、メモリ、並行処理、データベースのチェック項目を備え、報告前に具体的な根拠で検証する手順を示します。

主な機能

  1. 01GenServerのボトルネック確認
  2. 02メモリとバイナリ処理の確認
  3. 03並行処理とバックプレッシャーの確認
  4. 04データベースクエリのレビュー項目
  5. 05根拠と検証のゲート

活用シーン

  1. 01Elixirの変更にあるブロッキングコールバックの確認
  2. 02大規模データ処理とプロセス増加の点検
  3. 03報告前の性能上の指摘の検証

インストール

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

$npx skills add https://github.com/existential-birds/beagle --skill elixir-performance-review

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

同梱ファイル

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

references/
concurrency.md
ets-patterns.md
genserver-bottlenecks.md
memory.md

詳細

Elixir パフォーマンスレビュー

クイックリファレンス

問題の種類リファレンス
メールボックスのオーバーフロー、ブロッキング呼び出しreferences/genserver-bottlenecks.md
ETS を使用するタイミング、読み取り/書き込みの並行性references/ets-patterns.md
バイナリの処理、大きなメッセージreferences/memory.md
Task のパターン、フロー制御references/concurrency.md

レビューチェックリスト

GenServer
  • すべてのリクエストに対する単一プロセスのボトルネックになっていない
  • handle_call/cast 内にブロッキング操作がない
  • タイムアウトが適切に設定されている
  • 読み取りの多い状態には ETS の使用を検討している
メモリ
  • 大きなバイナリがプロセス間でコピーされていない
  • 大規模なデータ変換にストリームを使用している
  • データが上限なく蓄積されない
並行処理
  • 動的なタスクには Task.Supervisor を使用している(生の Task.async は使用しない)
  • プロセスが上限なく生成されない
  • メッセージ生成元に適切なバックプレッシャーがある
データベース
  • N+1 クエリを避けるためにプリロードしている
  • 大規模な結果セットにページネーションを使用している
  • 頻繁に実行されるクエリにインデックスがある

有効なパターン(指摘しないこと)

  • スループットが低い場合の単一 GenServer - すべての状態を水平スケーリングする必要があるわけではありません
  • クリティカルパスでの同期呼び出し - 一貫性を保つために必要な場合があります
  • ETS を使わないインメモリ状態 - 状態が小さい場合、ETS にはオーバーヘッドがあります
  • 小さなコレクションでの Stream より Enum - 小規模な場合、Stream のオーバーヘッドに見合う価値はありません

コンテキストに応じたルール

問題指摘するのは次の場合のみ
GenServer のボトルネック1 秒あたり 1000 件を超えるリクエストを処理する、またはコールバック内にブロッキング I/O がある
ストリームの使用1 万件を超える項目を処理する、または大きなファイルを読み込む
ETS の使用読み取りと書き込みの比率が 10:1 を超え、かつ並行アクセスがある

ゲート — 報告する前に

パフォーマンスレビューでは、これらを順番に実施してください。各ステップに合格するまで、指摘事項を公開しないでください。

  1. プロトコルの読み込み — review-verification-protocol を読み、各指摘事項に対するチェック(ホットパス、並行処理、リソース使用量)を適用します。合格条件: 実質的な指摘事項ごとに、満たしたプロトコルのサブセクションを明示できるか、理由(例:このスキルの有効なパターンへの単なる言及)とともに N/A と記載できること。
  2. 根拠の特定 — 合格条件: 各指摘事項に、具体的な位置情報(path:line または行の範囲)、あるいはファイルからの短い引用を添えた Module.function/arity が含まれていること。
  3. パフォーマンスに関する主張 — コンテキストに応じたルールに該当するもの、またはボトルネック、N+1、上限のない増加、大きなメモリ/バイナリコストに関する主張については、合格条件: 「指摘するのは次の場合のみ」を満たす観測済みまたは測定済みの事実(例:レート、項目数、比率)を示すか、成果物(プロファイラーの出力、SQL/ログの抜粋、grep/検索範囲)を添えること。そうでなければ、確認できなかった点を記載したうえで、質問/疑いありに格下げします。

指摘事項の提出前

まずゲート — 報告する前に(上記のセクション)を完了してください。検証プロトコルは、これらのゲートに必須の入力です。

コメント