
performance-investigation
โ 87,500by sveltejs ยท part of sveltejs/svelte
Investigate performance regressions and find opportunities for optimization
Investigate performance regressions and find opportunities for optimization
Inspect the full instructions your agent will receiveExpandCollapse
This is the exact playbook injected into your agent when the skill activates โ shown here so you can audit it before installing. You don't need to read it to use the skill.
name: performance-investigation description: Investigate performance regressions and find opportunities for optimization
Where outputs go
- Summary report:
benchmarking/compare/.results/report.txt - Raw benchmark numbers:
benchmarking/compare/.results/main.jsonbenchmarking/compare/.results/<your-branch>.json
- CPU profiles (per benchmark, per branch):
benchmarking/compare/.profiles/main/*.cpuprofilebenchmarking/compare/.profiles/main/*.mdbenchmarking/compare/.profiles/<your-branch>/*.cpuprofilebenchmarking/compare/.profiles/<your-branch>/*.md
The .md files are generated summaries of the CPU profile and are usually the fastest way to inspect hotspots.
Suggested investigation flow
- Open
benchmarking/compare/.results/report.txtand identify largest regressions first. - For each high-delta benchmark, compare:
benchmarking/compare/.profiles/main/<benchmark>.mdbenchmarking/compare/.profiles/<branch>/<benchmark>.md
- Look for changes in self/inclusive hotspot share in runtime internals (
runtime.js,reactivity/batch.js,reactivity/deriveds.js,reactivity/sources.js). - Make one optimization change at a time, then re-run targeted benches before re-running full compare.
Fast benchmark loops
Run only selected reactivity benchmarks by substring:
pnpm bench kairo_mux kairo_deep kairo_broad kairo_triangle
pnpm bench repeated_deps sbench_create_signals mol_ownedTests to run after perf changes
Runtime reactivity regressions are most likely in runes runtime tests:
pnpm test runtime-runesHelpful script
For quick cpuprofile hotspot deltas between two branches:
node benchmarking/compare/profile-diff.mjs kairo_mux_owned main fooThis prints top function sample-share deltas for the selected benchmark.
Practical gotchas
bench:comparechecks out branches while running. Avoid uncommitted changes (or stash them) so branch switching is safe.- Each
bench:comparerun rewritesbenchmarking/compare/.resultsandbenchmarking/compare/.profiles.
npx skills add https://github.com/sveltejs/svelte --skill performance-investigationRun this in your project โ your agent picks the skill up automatically.
Quick start
- Start from a branch you want to measure (for example
foo). - Run:
pnpm bench:compare main fooIf you pass one branch, bench:compare automatically compares it to main.
No common issues documented yet. If you hit a problem, the repository's GitHub Issues page is the best place to look.