- Created skills/ directory - Moved 272 skills to skills/ subfolder - Kept agents/ at root level - Kept installation scripts and docs at root level Repository structure: - skills/ - All 272 skills from skills.sh - agents/ - Agent definitions - *.sh, *.ps1 - Installation scripts - README.md, etc. - Documentation Co-Authored-By: Claude <noreply@anthropic.com>
144 lines
3.0 KiB
Markdown
144 lines
3.0 KiB
Markdown
---
|
|
name: performance-profiling
|
|
description: Performance profiling principles. Measurement, analysis, and optimization techniques.
|
|
allowed-tools: Read, Glob, Grep, Bash
|
|
---
|
|
|
|
# Performance Profiling
|
|
|
|
> Measure, analyze, optimize - in that order.
|
|
|
|
## 🔧 Runtime Scripts
|
|
|
|
**Execute these for automated profiling:**
|
|
|
|
| Script | Purpose | Usage |
|
|
|--------|---------|-------|
|
|
| `scripts/lighthouse_audit.py` | Lighthouse performance audit | `python scripts/lighthouse_audit.py https://example.com` |
|
|
|
|
---
|
|
|
|
## 1. Core Web Vitals
|
|
|
|
### Targets
|
|
|
|
| Metric | Good | Poor | Measures |
|
|
|--------|------|------|----------|
|
|
| **LCP** | < 2.5s | > 4.0s | Loading |
|
|
| **INP** | < 200ms | > 500ms | Interactivity |
|
|
| **CLS** | < 0.1 | > 0.25 | Stability |
|
|
|
|
### When to Measure
|
|
|
|
| Stage | Tool |
|
|
|-------|------|
|
|
| Development | Local Lighthouse |
|
|
| CI/CD | Lighthouse CI |
|
|
| Production | RUM (Real User Monitoring) |
|
|
|
|
---
|
|
|
|
## 2. Profiling Workflow
|
|
|
|
### The 4-Step Process
|
|
|
|
```
|
|
1. BASELINE → Measure current state
|
|
2. IDENTIFY → Find the bottleneck
|
|
3. FIX → Make targeted change
|
|
4. VALIDATE → Confirm improvement
|
|
```
|
|
|
|
### Profiling Tool Selection
|
|
|
|
| Problem | Tool |
|
|
|---------|------|
|
|
| Page load | Lighthouse |
|
|
| Bundle size | Bundle analyzer |
|
|
| Runtime | DevTools Performance |
|
|
| Memory | DevTools Memory |
|
|
| Network | DevTools Network |
|
|
|
|
---
|
|
|
|
## 3. Bundle Analysis
|
|
|
|
### What to Look For
|
|
|
|
| Issue | Indicator |
|
|
|-------|-----------|
|
|
| Large dependencies | Top of bundle |
|
|
| Duplicate code | Multiple chunks |
|
|
| Unused code | Low coverage |
|
|
| Missing splits | Single large chunk |
|
|
|
|
### Optimization Actions
|
|
|
|
| Finding | Action |
|
|
|---------|--------|
|
|
| Big library | Import specific modules |
|
|
| Duplicate deps | Dedupe, update versions |
|
|
| Route in main | Code split |
|
|
| Unused exports | Tree shake |
|
|
|
|
---
|
|
|
|
## 4. Runtime Profiling
|
|
|
|
### Performance Tab Analysis
|
|
|
|
| Pattern | Meaning |
|
|
|---------|---------|
|
|
| Long tasks (>50ms) | UI blocking |
|
|
| Many small tasks | Possible batching opportunity |
|
|
| Layout/paint | Rendering bottleneck |
|
|
| Script | JavaScript execution |
|
|
|
|
### Memory Tab Analysis
|
|
|
|
| Pattern | Meaning |
|
|
|---------|---------|
|
|
| Growing heap | Possible leak |
|
|
| Large retained | Check references |
|
|
| Detached DOM | Not cleaned up |
|
|
|
|
---
|
|
|
|
## 5. Common Bottlenecks
|
|
|
|
### By Symptom
|
|
|
|
| Symptom | Likely Cause |
|
|
|---------|--------------|
|
|
| Slow initial load | Large JS, render blocking |
|
|
| Slow interactions | Heavy event handlers |
|
|
| Jank during scroll | Layout thrashing |
|
|
| Growing memory | Leaks, retained refs |
|
|
|
|
---
|
|
|
|
## 6. Quick Win Priorities
|
|
|
|
| Priority | Action | Impact |
|
|
|----------|--------|--------|
|
|
| 1 | Enable compression | High |
|
|
| 2 | Lazy load images | High |
|
|
| 3 | Code split routes | High |
|
|
| 4 | Cache static assets | Medium |
|
|
| 5 | Optimize images | Medium |
|
|
|
|
---
|
|
|
|
## 7. Anti-Patterns
|
|
|
|
| ❌ Don't | ✅ Do |
|
|
|----------|-------|
|
|
| Guess at problems | Profile first |
|
|
| Micro-optimize | Fix biggest issue |
|
|
| Optimize early | Optimize when needed |
|
|
| Ignore real users | Use RUM data |
|
|
|
|
---
|
|
|
|
> **Remember:** The fastest code is code that doesn't run. Remove before optimizing.
|