About memory-leak-detection
A troubleshooting guide for developers to identify and fix memory leaks, including cases of growing memory use, OOM errors, and performance degradation. References cover Node.js and Python profiling.
Key features
- 01Use Node.js heap snapshots
- 02Identify common leak patterns
- 03Detect leaks with middleware
- 04Profile memory in Python
- 05Manage caches with WeakMap and WeakRef
Use cases
- 01Investigate steadily growing memory use
- 02Diagnose OOM errors
- 03Investigate performance degradation
- 04Monitor memory in production
Install
Copy the command and run it in a terminal.
$
npx skills add https:/ / github.com/ aj-geddes/ useful-ai-prompts --skill memory-leak-detectionAfter installing, type/memory-leak-detectionin Claude Code to confirm it loaded.
Bundled files
References and scripts installed along with SKILL.md.
references/common-memory-leak-patterns.mdmemory-leak-detection-middleware.mdmemory-monitoring-in-production.mdnodejs-heap-snapshots.mdpython-memory-profiling.mdweakmapweakref-for-cache.mdscripts/validate-config.shtemplates/config-starter.yamlDetails
From the project READMEMemory Leak Detection
Table of Contents
Overview
Identify and fix memory leaks to prevent out-of-memory crashes and optimize application performance.
When to Use
- Memory usage growing over time
- Out of memory (OOM) errors
- Performance degradation
- Container restarts
- High memory consumption
Quick Start
Minimal working example:
import v8 from "v8";
import fs from "fs";
class MemoryProfiler {
takeSnapshot(filename: string): void {
const snapshot = v8.writeHeapSnapshot(filename);
console.log(`Heap snapshot saved to ${snapshot}`);
}
getMemoryUsage(): NodeJS.MemoryUsage {
return process.memoryUsage();
}
formatMemory(bytes: number): string {
return `${(bytes / 1024 / 1024).toFixed(2)} MB`;
}
printMemoryUsage(): void {
const usage = this.getMemoryUsage();
console.log("Memory Usage:");
console.log(` RSS: ${this.formatMemory(usage.rss)}`);
console.log(` Heap Total: ${this.formatMemory(usage.heapTotal)}`);
console.log(` Heap Used: ${this.formatMemory(usage.heapUsed)}`);
console.log(` External: ${this.formatMemory(usage.external)}`);
// ... (see reference guides for full implementation)
Reference Guides
Detailed implementations in the references/ directory:
| Guide | Contents |
|---|---|
| Node.js Heap Snapshots | Node.js Heap Snapshots |
| Memory Leak Detection Middleware | Memory Leak Detection Middleware |
| Common Memory Leak Patterns | Common Memory Leak Patterns |
| Python Memory Profiling | Python Memory Profiling |
| WeakMap/WeakRef for Cache | WeakMap/WeakRef for Cache |
| Memory Monitoring in Production | Memory Monitoring in Production |
Best Practices
✅ DO
- Remove event listeners when done
- Clear timers and intervals
- Use WeakMap/WeakRef for caches
- Limit cache sizes
- Monitor memory in production
- Profile regularly
- Clean up after tests
❌ DON'T
- Create circular references
- Hold references to large objects unnecessarily
- Forget to clean up resources
- Ignore memory growth
- Skip WeakMap for object caches
Comments
Markdown supported