Install any skill in seconds. Free to start, no credit card required.
Get Started Free →Performance profiling principles. Measurement, analysis, and optimization techniques.
.claude/skills/davila7-performance-profiling/SKILL.md| Test case | Without → With | Effect | Δ tokens | Δ turns |
|---|---|---|---|---|
| case-02 | ✗→✓ | ▲ Improved | -2% | 0% |
| case-03 | ✗→✓ | ▲ Improved | 21% | 0% |
| case-18 | ✗→✓ | ▲ Improved | -4% | 0% |
| case-19 | ✓→✓ | = Same ✓ | 31% | 0% |
| case-04 | ✓→✓ | = Same ✓ | -10% | 0% |
> Measure, analyze, optimize - in that order.
Execute these for automated profiling:
| Script | Purpose | Usage | |--------|---------|-------| | scripts/lighthouse_audit.py | Lighthouse performance audit | python scripts/lighthouse_audit.py https://example.com |
| Metric | Good | Poor | Measures | |--------|------|------|----------| | LCP | < 2.5s | > 4.0s | Loading | | INP | < 200ms | > 500ms | Interactivity | | CLS | < 0.1 | > 0.25 | Stability |
| Stage | Tool | |-------|------| | Development | Local Lighthouse | | CI/CD | Lighthouse CI | | Production | RUM (Real User Monitoring) |
1. BASELINE → Measure current state
2. IDENTIFY → Find the bottleneck
3. FIX → Make targeted change
4. VALIDATE → Confirm improvement| Problem | Tool | |---------|------| | Page load | Lighthouse | | Bundle size | Bundle analyzer | | Runtime | DevTools Performance | | Memory | DevTools Memory | | Network | DevTools Network |
| Issue | Indicator | |-------|-----------| | Large dependencies | Top of bundle | | Duplicate code | Multiple chunks | | Unused code | Low coverage | | Missing splits | Single large chunk |
| Finding | Action | |---------|--------| | Big library | Import specific modules | | Duplicate deps | Dedupe, update versions | | Route in main | Code split | | Unused exports | Tree shake |
| Pattern | Meaning | |---------|---------| | Long tasks (>50ms) | UI blocking | | Many small tasks | Possible batching opportunity | | Layout/paint | Rendering bottleneck | | Script | JavaScript execution |
| Pattern | Meaning | |---------|---------| | Growing heap | Possible leak | | Large retained | Check references | | Detached DOM | Not cleaned up |
| 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 |
| 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 |
| ❌ 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.
| Case | Status | Duration (ms) | Turns | Tokens | Tool calls | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|---|---|---|
| Without | With | Δ | Without | With | Δ | Without | With | Δ | Without | With | Δ | ||
case-19 | pass→pass | 5,752 | 3,094 | -46% | 1 | 1 | 0% | 977 | 1,277 | +31% | 0 | 0 | — |
case-01 | fail→fail | 13,713 | 11,118 | -19% | 1 | 1 | 0% | 2,511 | 2,533 | +1% | 0 | 0 | — |
case-02 | fail→pass | 19,086 | 13,826 | -28% | 1 | 1 | 0% | 3,151 | 3,096 | -2% | 0 | 0 | — |
case-03 | fail→pass | 17,590 | 16,962 | -4% | 1 | 1 | 0% | 3,167 | 3,818 | +21% | 0 | 0 | — |
case-04 | pass→pass | 9,987 | 4,118 | -59% | 1 | 1 | 0% | 1,757 | 1,588 | -10% | 0 | 0 | — |
case-20 | pass→pass | 11,187 | 12,405 | +11% | 1 | 1 | 0% | 2,055 | 2,985 | +45% | 0 | 0 | — |
case-05 | pass→pass | 5,294 | 3,827 | -28% | 1 | 1 | 0% | 993 | 1,484 | +49% | 0 | 0 | — |
case-06 | pass→pass | 7,657 | 4,030 | -47% | 1 | 1 | 0% | 1,195 | 1,423 | +19% | 0 | 0 | — |
case-07 | pass→pass | 11,024 | 7,062 | -36% | 1 | 1 | 0% | 1,798 | 1,985 | +10% | 0 | 0 | — |
case-08 | pass→pass | 6,267 | 5,177 | -17% | 1 | 1 | 0% | 1,054 | 1,683 | +60% | 0 | 0 | — |
case-09 | pass→pass | 18,125 | 11,318 | -38% | 1 | 1 | 0% | 2,862 | 2,623 | -8% | 0 | 0 | — |
case-10 | pass→pass | 11,592 | 9,443 | -19% | 1 | 1 | 0% | 2,084 | 2,440 | +17% | 0 | 0 | — |
case-11 | pass→pass | 8,118 | 7,700 | -5% | 1 | 1 | 0% | 1,361 | 1,951 | +43% | 0 | 0 | — |
case-12 | pass→pass | 13,647 | 24,777 | +82% | 1 | 1 | 0% | 2,283 | 3,033 | +33% | 0 | 0 | — |
case-13 | pass→pass | 14,842 | 9,781 | -34% | 1 | 1 | 0% | 2,356 | 2,316 | -2% | 0 | 0 | — |
case-21 | pass→pass | 12,582 | 10,333 | -18% | 1 | 1 | 0% | 2,354 | 2,681 | +14% | 0 | 0 | — |
case-14 | pass→pass | 13,644 | 10,262 | -25% | 1 | 1 | 0% | 2,085 | 2,398 | +15% | 0 | 0 | — |
case-15 | pass→pass | 14,652 | 12,663 | -14% | 1 | 1 | 0% | 2,329 | 2,696 | +16% | 0 | 0 | — |
case-16 | pass→pass | 9,130 | 4,533 | -50% | 1 | 1 | 0% | 1,427 | 1,610 | +13% | 0 | 0 | — |
case-17 | pass→pass | 10,768 | 8,636 | -20% | 1 | 1 | 0% | 1,701 | 2,199 | +29% | 0 | 0 | — |
case-18 | fail→pass | 13,781 | 8,488 | -38% | 1 | 1 | 0% | 2,049 | 1,976 | -4% | 0 | 0 | — |
case-22 | pass→pass | 9,265 | 6,886 | -26% | 1 | 1 | 0% | 1,733 | 2,093 | +21% | 0 | 0 | — |
DecimalAI ran this skill against gemini-3.6-flash twice over the same eval suite — once with the skill loaded and once without — and compared the two runs case by case. 22 cases were attempted. The headline lift of +14 percentage points is the difference between those two pass rates over the 22 comparable cases.
Without the skill loaded, the model failed this case. With it loaded, the same prompt on the same model passed. This is one improved case from the latest verified run; every case, including any that regressed, is in the table above.
Other measured skills in the registry, with their headline benchmark lift.