Babysitter memory-leak-detector
Detect memory leaks in desktop applications through heap analysis and object tracking
install
source · Clone the upstream repo
git clone https://github.com/a5c-ai/babysitter
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/a5c-ai/babysitter "$T" && mkdir -p ~/.claude/skills && cp -r "$T/library/specializations/desktop-development/skills/memory-leak-detector" ~/.claude/skills/a5c-ai-babysitter-memory-leak-detector && rm -rf "$T"
manifest:
library/specializations/desktop-development/skills/memory-leak-detector/SKILL.mdsource content
memory-leak-detector
Detect memory leaks in desktop applications through heap snapshot analysis, object tracking, and growth pattern detection.
Capabilities
- Capture and compare heap snapshots
- Track object allocation growth
- Identify retained objects
- Detect common leak patterns
- Generate leak reports
- Suggest fixes
Input Schema
{ "type": "object", "properties": { "projectPath": { "type": "string" }, "framework": { "enum": ["electron", "native", "qt"] }, "duration": { "type": "number", "default": 60 } }, "required": ["projectPath"] }
Detection Approach
// Heap snapshot comparison const v8 = require('v8'); function detectLeaks(iterations = 3, intervalMs = 10000) { const snapshots = []; const interval = setInterval(() => { global.gc(); // Requires --expose-gc const snapshot = v8.getHeapStatistics(); snapshots.push(snapshot); if (snapshots.length >= iterations) { clearInterval(interval); analyzeGrowth(snapshots); } }, intervalMs); } function analyzeGrowth(snapshots) { const growth = snapshots[snapshots.length - 1].used_heap_size - snapshots[0].used_heap_size; console.log(`Heap growth: ${growth / 1024 / 1024} MB`); }
Common Leak Patterns
- Event listeners not removed
- Closures holding references
- Global variable accumulation
- Timer/interval not cleared
- DOM node detachment
Related Skills
electron-memory-profilerstartup-time-profiler