back
loading skill details...
>
Memory Leak Detection
Table of Contents
Overview
When to Use
Quick Start
Reference Guides
Best Practices
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
1d:[don't have the plugin yet? install it then click "run inline in claude" again.