function notLinuxVariant(registry, config = {}) { const namePrefix = config.prefix ? config.prefix : ''; new Gauge({ name: namePrefix + PROCESS_RESIDENT_MEMORY, help: 'Resident memory size in bytes.', registers: registry ? [registry] : undefined, collect() { const memUsage = safeMemoryUsage(); // I don't think the other things returned from `process.memoryUsage()` is relevant to a standard export if (memUsage) { this.set(memUsage.rss); } }, }); }
app.use(function(req, res, next) { req.startTime = Date.now(); req.startMem = process.memoryUsage().heapUsed; next(); });
function logMemoryUsage() { var mbUsed = process.memoryUsage().heapUsed / 1024 / 1024; mbUsed = Math.round(mbUsed * 100) / 100; var mbTotal = process.memoryUsage().heapTotal / 1024 / 1024; mbTotal = Math.round(mbTotal * 100) / 100; //debugLog("memoryUsage: heapUsed=" + mbUsed + ", heapTotal=" + mbTotal + ", ratio=" + parseInt(mbUsed / mbTotal * 100)); }
var ResidentSetSize = function() { this.getStatus = function(request,callback) { let mb = parseInt( (process.memoryUsage().rss / 1024) / 1024 ); callback(undefined,mb); }; }
/** * Get used bytes for closures , objects & strings * * @return {string} */ const getHeapUsed = () => { return prettifyBytes(memoryUsage.heapUsed); }
GameServer.CampModel.find(function (err, camps) { if (err) return console.log(err); if(camps.length == 0){ GameServer.readCamps(); }else{ camps.forEach(GameServer.addCamp); } var hrend = process.hrtime(hrstart); console.log('setUpCamps execution time: %ds %dms', hrend[0], hrend[1] / 1000000); console.log(process.memoryUsage().heapUsed/1024/1024,'Mb memory used'); GameServer.updateStatus(); });
function memoryStats(){ console.log("--- PROCESS INFO"); console.log(`Resident Set Size: ${ process.memoryUsage().rss }`); console.log(`Total Heap Size: ${ process.memoryUsage().heapTotal }`); console.log(`Used Heap: ${ process.memoryUsage().heapUsed }`); console.log(`External: ${ process.memoryUsage().external }`); }
app.get('/api/load', (req, res) => { let ram = Math.floor(process.memoryUsage().rss / 1000000).toString() let uptime = Math.floor(process.uptime() / 60).toString() res.send('Ram Used : ' + ram + ' MB Uptime: ' + uptime + ' min'); });
function printStats() { const executionTime = (Date.now()-startTime)/1000; console.log('################MEMORY#####################'); console.log(`# Average memory: ${stats.MEM_AVG/1048576} MB`); console.log(`# MAX memory: ${stats.MEM_MAX/1048576} MB`); console.log(`# MIN memory: ${stats.MEM_MIN/1048576} MB`); console.log(`# END memory: ${process.memoryUsage().heapUsed/1048576} MB`); console.log('################MEMORY#####################'); console.log(`Execution time: ${executionTime} sec.`); console.log(`Average: ${executionTime/TICK_COUNT} sec.`); console.log(`Rate: ${TICK_COUNT/executionTime}/sec.`); }
GameServer.BuildingModel.find(function (err, buildings) { if (err) return console.log(err); buildings.forEach(GameServer.addBuilding); if(GameServer.needToSpawnCamps) GameServer.spawnCamps(); // GameServer.updateRegions(); // Not called because downstream of the init sequence, setupSpawnZones calles it GameServer.computeFrontier(false); var hrend = process.hrtime(hrstart); console.log('loadBuildings execution time: %ds %dms', hrend[0], hrend[1] / 1000000); console.log(process.memoryUsage().heapUsed/1024/1024,'Mb memory used'); GameServer.updateStatus(); });
app.use(function(req, res, next) { var time = Date.now() - req.startTime; var memdiff = process.memoryUsage().heapUsed - req.startMem; debugPerfLog("Finished action '%s' in %d ms", req.path, time); });
function reportMemory() { global.gc(); var increase = process.memoryUsage().heapUsed - startMem; console.log("memory increase: " + (+(increase / 1024).toPrecision(3)) + "kB"); }