elixir-performance-review
13
总安装量
5
周安装量
#24840
全站排名
安装命令
npx skills add https://github.com/existential-birds/beagle --skill elixir-performance-review
Agent 安装分布
github-copilot
4
codex
4
gemini-cli
4
replit
3
claude-code
3
Skill 文档
Elixir Performance Review
Quick Reference
| Issue Type | Reference |
|---|---|
| Mailbox overflow, blocking calls | references/genserver-bottlenecks.md |
| When to use ETS, read/write concurrency | references/ets-patterns.md |
| Binary handling, large messages | references/memory.md |
| Task patterns, flow control | references/concurrency.md |
Review Checklist
GenServer
- Not a single-process bottleneck for all requests
- No blocking operations in handle_call/cast
- Proper timeout configuration
- Consider ETS for read-heavy state
Memory
- Large binaries not copied between processes
- Streams used for large data transformations
- No unbounded data accumulation
Concurrency
- Task.Supervisor for dynamic tasks (not raw Task.async)
- No unbounded process spawning
- Proper backpressure for message producers
Database
- Preloading to avoid N+1 queries
- Pagination for large result sets
- Indexes for frequent queries
Valid Patterns (Do NOT Flag)
- Single GenServer for low-throughput – Not all state needs horizontal scaling
- Synchronous calls for critical paths – Consistency may require it
- In-memory state without ETS – ETS has overhead for small state
- Enum over Stream for small collections – Stream overhead not worth it
Context-Sensitive Rules
| Issue | Flag ONLY IF |
|---|---|
| GenServer bottleneck | Handles > 1000 req/sec OR blocking I/O in callbacks |
| Use streams | Processing > 10k items OR reading large files |
| Use ETS | Read:write ratio > 10:1 AND concurrent access |
Before Submitting Findings
Load and follow review-verification-protocol before reporting any issue.