UNPKG

damage

Version:

A simple way to calculate the 'damage' of running a task in Node.JS.

99 lines (89 loc) 2.2 kB
var finished = false; var haveDone = false; var testData = []; var testFinalData = []; var error = null; var _ = require('lodash'); var usage = require(__dirname+'/../lib/cpu.js'); var heapdump = require('heapdump'); var _config = {}; var i=0; // TASK INFORMATION //TASK// process.once('message',function (env) { _config = env._config; setImmediate(function () { var args = arguments; if (testFinalData && testFinalData[i]) usage.getUsage(process.pid,function (err,result) { var len = testFinalData[i].processUsage.length; result = result.cpu; if (!isNaN(result) && result !== testFinalData[i].processUsage[len-1]) { testFinalData[i].processUsage.push(result); } setImmediate(args.callee); }); else setImmediate(args.callee); }); function finish() { if (!finished) { if (_config.heapdump) heapdump.writeSnapshot(_config.dumpPath+_config.dumpPrefix+'.'+desc.replace(/\s/g,"_") + Date.now() + '.heapsnapshot'); process.send({ error: null, env: env, startData: testData, finalData: testFinalData }); } process.exit(); } i=0; // PREPARE SCRIPT //PREPARE// (function () { var args = arguments.callee; if (i>=repeats) finish(); else { haveDone = false; function done() { if (!haveDone) { testFinalData[i].time=+new Date; testFinalData[i].rss=process.memoryUsage().rss; testFinalData[i].heapTotal=process.memoryUsage().heapTotal; testFinalData[i].heapUsed=process.memoryUsage().heapUsed; i++; haveDone = true; args(); } } function start () { testData[i]={}; testFinalData[i]={}; testData[i].time=+new Date; testData[i].rss=process.memoryUsage().rss; testData[i].heapTotal=process.memoryUsage().heapTotal; testData[i].heapUsed=process.memoryUsage().heapUsed; testFinalData[i].processUsage=[]; } start(); // TASK EXECUTION try { setImmediate(function () { result=//TEST// if (result!==undefined) done(); }); } catch (e) { error=e; finish(); } } })(); });