mem-pressure
v1.0.0
Published
Monitor Node.js memory usage and emit events when thresholds are exceeded
Maintainers
Readme
mem-pressure
Monitor Node.js memory usage and emit events when thresholds are exceeded
Install
npm install mem-pressureUsage
import MemoryMonitor, {getMemorySnapshot} from 'mem-pressure';
const monitor = new MemoryMonitor({threshold: 0.9, interval: 10_000});
monitor.addEventListener('pressure', event => {
console.log('Memory pressure detected!');
console.log(`Heap usage: ${(event.detail.heapUsedRatio * 100).toFixed(1)}%`);
});
monitor.start();
// Get a one-off snapshot
const snapshot = getMemorySnapshot();
console.log(snapshot.heapUsedRatio);
// Stop monitoring
monitor.stop();API
MemoryMonitor(options?)
Creates a new memory monitor instance. Extends EventTarget.
options
Type: object
threshold
Type: number
Default: 0.85
Heap usage ratio (0-1) at which to emit 'pressure' events.
interval
Type: number
Default: 5000
Polling interval in milliseconds.
Events
'pressure'
Emitted when heapUsed / heapTotal exceeds the threshold. The listener receives a CustomEvent with detail set to a MemorySnapshot object.
.start()
Start monitoring memory usage. Returns this for chaining.
.stop()
Stop monitoring memory usage. Returns this for chaining.
[Symbol.dispose]()
Calls .stop(). Enables use with the using declaration.
getMemorySnapshot()
Returns a MemorySnapshot object with the following properties:
rss— Resident Set Size in bytesheapTotal— Total size of the allocated heap in bytesheapUsed— Actual memory used during execution in bytesexternal— Memory used by C++ objects bound to JavaScript objects in bytesarrayBuffers— Memory allocated forArrayBufferandSharedArrayBufferin bytesheapUsedRatio— Ratio ofheapUsedtoheapTotal(0-1)
Related
- v8 - Node.js V8 API
- process.memoryUsage - Node.js memory usage API
License
MIT
