Claude
Cursor
opencode
Skill
performance-profiling
Performance profiling principles. Measurement, analysis, and optimization techniques.
Virus-scanned
Reviewed automatically before listing.
Download
vodailocz-kilo-kit-mcp-skills_engineering_performance-profiling-0448e6c.zip · 2 KB
Install
skills CLI
npx skills add https://github.com/VoDaiLocz/kilo-kit-mcp/tree/main/skills/engineering/performance-profiling
Claude Code
claude plugin marketplace add https://llmmart.ai/marketplace.json && claude plugin install vodailocz-kilo-kit-mcp@llmmart
Git
git clone https://github.com/VoDaiLocz/kilo-kit-mcp.git
The skills CLI installs just this skill, for any of its supported agents. Claude Code installs the whole vodailocz/kilo-kit-mcp collection as a plugin from our marketplace. Git is the plain clone.
Skill manifest
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.
Files (kilo-kit-mcp)
-
scripts
-
lighthouse_audit.py 2.6 KB
#!/usr/bin/env python3 """ Skill: performance-profiling Script: lighthouse_audit.py Purpose: Run Lighthouse performance audit on a URL Usage: python lighthouse_audit.py https://example.com Output: JSON with performance scores Note: Requires lighthouse CLI (npm install -g lighthouse) """ import subprocess import json import sys import os import tempfile def run_lighthouse(url: str) -> dict: """Run Lighthouse audit on URL.""" try: with tempfile.NamedTemporaryFile(suffix='.json', delete=False) as f: output_path = f.name result = subprocess.run( [ "lighthouse", url, "--output=json", f"--output-path={output_path}", "--chrome-flags=--headless", "--only-categories=performance,accessibility,best-practices,seo" ], capture_output=True, text=True, timeout=120 ) if os.path.exists(output_path): with open(output_path, 'r') as f: report = json.load(f) os.unlink(output_path) categories = report.get("categories", {}) return { "url": url, "scores": { "performance": int(categories.get("performance", {}).get("score", 0) * 100), "accessibility": int(categories.get("accessibility", {}).get("score", 0) * 100), "best_practices": int(categories.get("best-practices", {}).get("score", 0) * 100), "seo": int(categories.get("seo", {}).get("score", 0) * 100) }, "summary": get_summary(categories) } else: return {"error": "Lighthouse failed to generate report", "stderr": result.stderr[:500]} except subprocess.TimeoutExpired: return {"error": "Lighthouse audit timed out"} except FileNotFoundError: return {"error": "Lighthouse CLI not found. Install with: npm install -g lighthouse"} def get_summary(categories: dict) -> str: """Generate summary based on scores.""" perf = categories.get("performance", {}).get("score", 0) * 100 if perf >= 90: return "[OK] Excellent performance" elif perf >= 50: return "[!] Needs improvement" else: return "[X] Poor performance" if __name__ == "__main__": if len(sys.argv) < 2: print(json.dumps({"error": "Usage: python lighthouse_audit.py <url>"})) sys.exit(1) result = run_lighthouse(sys.argv[1]) print(json.dumps(result, indent=2))
-
-
SKILL.md 3 KB
--- 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.
Comments (0)
Sign in to join the conversation.
Reviews (0)
No reviews yet.
No comments yet.