analyze
무료Analyze a legacy app in any language before rewriting it in Elixir: inventory, features as goals, why each mechanism exists, runtime topology, external contracts. Use to start or refresh a rewrite.
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
Use when anything in a Phoenix app is slow, times out, or uses too much memory, even if the cause looks obvious. Load it before analyzing or fixing: it runs measured Ecto, LiveView and OTP checks and ranks fixes.
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
설치 방법 보기설치하기 전에 에이전트에게 전달되는 지시 내용을 확인할 수 있습니다.
Analyze code for performance issues across Ecto, LiveView, and OTP layers. Prioritize findings by impact and effort.
phx-perf # Analyze full project
phx-perf lib/my_app/accounts.ex # Analyze specific module
phx-perf --focus ecto # Ecto queries only
phx-perf --focus liveview # LiveView memory only
phx-perf --focus otp # OTP bottlenecks only
$ARGUMENTS = Optional module/context path and --focus flag.
MIX_ENV=prod for performance measurements; dev mode includes code reloading, debug logging, and unoptimized compilation that invalidate resultsCheck specific file if provided. Otherwise scan full project:
# Find hot paths: contexts, LiveViews, workers
find lib/ -name "*.ex" | head -50
Spawn analysis agents in parallel based on focus:
Ecto Track (default or --focus ecto):
Spawn phx:elixir-reviewer with prompt:
"Analyze for N+1 queries, missing preloads, unindexed queries,
and inefficient patterns. Check: Repo.all in loops,
Enum.map with Repo calls, missing preload, queries without
indexes on WHERE/JOIN columns."
LiveView Track (default or --focus liveview):
Spawn phx:elixir-reviewer with prompt:
"Analyze LiveViews for memory issues: large assigns, missing
streams for lists, assigns that grow unbounded, heavy
handle_info processing, missing assign_async for slow ops."
OTP Track (only with --focus otp):
Spawn phx:otp-advisor with prompt:
"Analyze for OTP bottlenecks: GenServer mailbox growth,
synchronous calls in hot paths, missing Task.async for
parallel work, ETS opportunities for read-heavy state."
Score each finding on a 2x2 matrix:
| Low Effort | High Effort | |
|---|---|---|
| High Impact | DO FIRST | PLAN |
| Low Impact | QUICK WIN | SKIP |
High impact = affects response time, memory per user, or query count. Low effort = single file change, no migration needed.
Present findings sorted by priority:
## Performance Analysis: {scope}
### 1. {Finding} — DO FIRST
**Impact**: {what improves}
**Location**: {file}:{line}
**Current**: {problematic pattern}
**Fix**: {optimized pattern}
**Estimated gain**: {e.g., "eliminates N+1, reduces queries from O(n) to O(1)"}
### 2. {Finding} — PLAN
...
Always end with actionable next steps — findings without follow-up get lost. Present options based on severity:
How would you like to proceed?
- `phx-plan` — Create a plan from these findings (recommended for 3+ fixes)
- `phx-quick` — Apply top priority fix directly (1-2 simple fixes)
- `phx-investigate` — Deep-dive into a specific finding
If Tidewave MCP is available:
mcp__tidewave__project_eval to run Repo.query!("EXPLAIN ANALYZE ...") on suspicious queriesmcp__tidewave__project_eval to check Process.info(pid, :message_queue_len) for GenServer bottlenecksmcp__tidewave__execute_sql_query to check missing indexesreferences/benchmarking.md — Benchee patterns, profiling, flame graphs아직 리뷰가 없습니다. 사용해 본 소감을 남겨 주세요.
로그인 없이 쓸 수 있습니다. 사용 후기, 질문, 작동하지 않은 환경 등을 편하게 남겨 주세요.
아직 댓글이 없습니다. 첫 댓글을 남겨 보세요.
Analyze a legacy app in any language before rewriting it in Elixir: inventory, features as goals, why each mechanism exists, runtime topology, external contracts. Use to start or refresh a rewrite.
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
Design the idiomatic Elixir architecture for a rewrite: set the compatibility bar (ADR-000), consult phx specialists on open questions, then build contexts, ledger and ADRs. Use after /rewrite:analyze.
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
Ash Framework — resources, actions, policies, aggregates, calculations, AshPhoenix.Form, LiveView, migrations. Use when generating resources via mix ash.codegen, editing changes, checks, types, validations, or domain code interfaces.
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
Ash Framework — resources, actions, policies, aggregates; Use when generating resources via mix ash.codegen, editing…
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
Compatibility alias for the Elixir/Phoenix plugin's LiveView assigns audit. Invoke explicitly with /lv:assigns.
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.
Inspect LiveView socket assigns for memory bloat — missing temporary_assigns, unused assigns, unbounded lists needing streams, memory estimates. Use when LiveView memory grows or you need to add temporary_assigns.
한국어 요약은 준비 중입니다. 원문 설명을 표시하고 있습니다.