Comparing version 0.1.0 to 0.1.1
@@ -5,2 +5,3 @@ var os = require('os') | ||
, exec = require('child_process').exec | ||
, spawn = require('child_process').spawn | ||
, helpers = require('./helpers') | ||
@@ -121,31 +122,33 @@ | ||
win: function(pid, options, done) { | ||
// http://social.msdn.microsoft.com/Forums/en-US/469ec6b7-4727-4773-9dc7-6e3de40e87b8/cpu-usage-in-for-each-active-process-how-is-this-best-determined-and-implemented-in-an?forum=csharplanguage | ||
//var wmic = spawn('wmic' ['PROCESS', pid, 'get workingsetsize,usermodetime,kernelmodetime']); | ||
var wmic = spawn('wmic', ['PROCESS', pid, 'get', 'workingsetsize,usermodetime,kernelmodetime'], | ||
{detached: true} | ||
); | ||
var stdout = ''; | ||
wmic.stdout.on('data', function (data) { | ||
stdout += data; | ||
}); | ||
wmic.stderr.on('data', function (data) { | ||
console.warn(data); | ||
}); | ||
// var history = this.history[pid] ? this.history[pid] : {} | ||
// , uptime = os.uptime() | ||
// , self = this | ||
wmic.on('close', function () { | ||
stdout = stdout.split(os.EOL)[1]; | ||
stdout = stdout.replace(/\s\s+/g, ' ').split(' '); | ||
var stats = { | ||
kernelmodetime: parseFloat(stdout[0]), | ||
usermodetime: parseFloat(stdout[1]), | ||
workingsetsize: parseFloat(stdout[2]) | ||
}; | ||
// according to http://technet.microsoft.com/en-us/library/ee176718.aspx | ||
var total = (stats.usermodetime + stats.kernelmodetime) / 10000000; //seconds | ||
return done(null, {cpu: total, memory: stats.workingsetsize}); | ||
}); | ||
//http://social.msdn.microsoft.com/Forums/en-US/469ec6b7-4727-4773-9dc7-6e3de40e87b8/cpu-usage-in-for-each-active-process-how-is-this-best-determined-and-implemented-in-an?forum=csharplanguage | ||
exec('wmic PROCESS '+pid+' get workingsetsize,usermodetime,kernelmodetime', function(error, stdout, stderr) { | ||
if(error) { | ||
console.log(error) | ||
return done(error) | ||
} | ||
wmic.on('error', function (err) { | ||
console.error("wmic spawn error: " + err); | ||
return done(err); | ||
}); | ||
stdout = stdout.split(os.EOL)[1] | ||
stdout = stdout.replace(/\s\s+/g, ' ').split(' ') | ||
var stats = { | ||
kernelmodetime: parseFloat(stdout[0]), | ||
usermodetime: parseFloat(stdout[1]), | ||
workingsetsize: parseFloat(stdout[2]) | ||
} | ||
//according to http://technet.microsoft.com/en-us/library/ee176718.aspx | ||
var total = (stats.usermodetime + stats.kernelmodetime) / 10000000 //seconds | ||
return done(null, { | ||
cpu: total, | ||
memory: stats.workingsetsize | ||
}) | ||
}) | ||
} | ||
@@ -152,0 +155,0 @@ } |
{ | ||
"name": "pidusage", | ||
"version": "0.1.0", | ||
"version": "0.1.1", | ||
"description": "Process cpu % and memory use of a PID", | ||
@@ -5,0 +5,0 @@ "main": "index.js", |
Sorry, the diff of this file is not supported yet
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
License Policy Violation
LicenseThis package is not allowed per your license policy. Review the package's license to ensure compliance.
Found 1 instance in 1 package
17622
334
4