deadem
Version:
JavaScript (Node.js & Browsers) parser for Deadlock (Valve Source 2 Engine) demo/replay files
61 lines (49 loc) • 1.32 kB
JavaScript
import MemoryTracker from './MemoryTracker.js';
class MemoryTrackerNode extends MemoryTracker {
/**
* @constructor
* @param {number} intervalMilliseconds
*/
constructor(intervalMilliseconds = 10) {
super();
this._intervalMilliseconds = intervalMilliseconds;
this._intervalId = null;
this._stats = {
maxMemoryUsage: null
};
}
/**
* @public
* @returns {MemoryTrackerStats}
*/
getStats() {
return {
...this._stats
};
}
/**
* @public
*/
off() {
if (this._intervalId === null) {
throw new Error('Unable to call MemoryTracker.off()');
}
clearInterval(this._intervalId);
this._intervalId = null;
}
/**
* @public
*/
on() {
if (this._intervalId !== null) {
throw new Error('Unable to call MemoryTracker.on()');
}
this._intervalId = setInterval(() => {
const memoryUsage = process.memoryUsage.rss();
if (this._stats.maxMemoryUsage === null || memoryUsage > this._stats.maxMemoryUsage) {
this._stats.maxMemoryUsage = memoryUsage;
}
}, this._intervalMilliseconds);
}
}
export default MemoryTrackerNode;