CRITICAL: Use for performance optimization. Triggers: performance, optimization, benchmark, profiling, flamegraph, criterion, slow, fast, allocation, cache, SIMD, make it faster, 性能优化, 基准测试
Instalação
Instalar com Codex ou Claude Copie este prompt, cole no Codex, Claude ou outro assistente e deixe que ele revise a página da skill e instale para você.
CRITICAL: Use for performance optimization. Triggers: performance, optimization, benchmark, profiling, flamegraph, criterion, slow, fast, allocation, cache, SIMD, make it faster, 性能优化, 基准测试
user-invocable
false
Performance Optimization
Layer 2: Design Choices
Core Question
What's the bottleneck, and is optimization worth it?
Before optimizing:
Have you measured? (Don't guess)
What's the acceptable performance?
Will optimization add complexity?
Performance Decision → Implementation
Goal
Design Choice
Implementation
Reduce allocations
Pre-allocate, reuse
with_capacity, object pools
Improve cache
Contiguous data
Vec, SmallVec
Parallelize
Data parallelism
rayon, threads
Avoid copies
Zero-copy
References, Cow<T>
Reduce indirection
Inline data
smallvec, arrays
Thinking Prompt
Before optimizing:
Have you measured?
Profile first → flamegraph, perf
Benchmark → criterion, cargo bench
Identify actual hotspots
What's the priority?
Algorithm (10x-1000x improvement)
Data structure (2x-10x)
Allocation (2x-5x)
Cache (1.5x-3x)
What's the trade-off?
Complexity vs speed
Memory vs CPU
Latency vs throughput
Trace Up ↑
To domain constraints (Layer 3):
"How fast does this need to be?"
↑ Ask: What's the performance SLA?
↑ Check: domain-* (latency requirements)
↑ Check: Business requirements (acceptable response time)
Question
Trace To
Ask
Latency requirements
domain-*
What's acceptable response time?
Throughput needs
domain-*
How many requests per second?
Memory constraints
domain-*
What's the memory budget?
Trace Down ↓
To implementation (Layer 1):
"Need to reduce allocations"
↓ m01-ownership: Use references, avoid clone
↓ m02-resource: Pre-allocate with_capacity
"Need to parallelize"
↓ m07-concurrency: Choose rayon or threads
↓ m07-concurrency: Consider async for I/O-bound
"Need cache efficiency"
↓ Data layout: Prefer Vec over HashMap when possible
↓ Access patterns: Sequential over random access