elixir-performance-review

📁 existential-birds/beagle 📅 4 days ago
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.