processLoad() bugfix windows

This commit is contained in:
Sebastian Hildebrandt 2018-11-26 16:38:40 +01:00
parent 2bf55c48df
commit 9ecf15f5f8
2 changed files with 39 additions and 41 deletions

View File

@ -100,6 +100,7 @@ Other changes
| Version | Date | Comment |
| -------------- | -------------- | -------- |
| 3.51.1 | 2018-11-26 | `processLoad()` bugfix windows |
| 3.51.0 | 2018-11-25 | `processLoad()` added for windows |
| 3.50.3 | 2018-11-25 | `processLoad()`, `services()` fixed cpu data (linux) |
| 3.50.2 | 2018-11-23 | network mac adresses: ip support fix |

View File

@ -849,7 +849,7 @@ function processLoad(proc, callback) {
if (!error) {
let processSections = stdout.split(/\n\s*\n/);
let procs = [];
let procStats = {};
let procStats = [];
let list_new = {};
let allcpuu = 0;
let allcpus = 0;
@ -864,49 +864,52 @@ function processLoad(proc, callback) {
allcpuu = allcpuu + utime;
allcpus = allcpus + stime;
procStats = {
procStats.push({
pid: pid,
utime: utime,
stime: stime,
pcpu: 0,
pcpuu: 0,
pcpus: 0,
};
if (name.toLowerCase().indexOf(name.toLowerCase()) >= 0) {
result = {
proc: name,
pid: pid,
pids: [pid],
cpu: 0,
mem: mem / os.totalmem() * 100
};
});
if (name.toLowerCase().indexOf(proc.toLowerCase()) >= 0) {
if (result.pid === -1) {
result = {
proc: name,
pid: pid,
pids: [pid],
cpu: 0,
mem: mem / os.totalmem() * 100
};
} else {
result.pids.push(pid);
result.mem += mem / os.totalmem() * 100;
}
}
}
result.sleeping = result.all - result.running - result.blocked - result.unknown;
result.list = procs;
for (let i = 0; i < procStats.length; i++) {
let resultProcess = calcProcStatWin(procStats[i], allcpuu + allcpus, _process_cpu);
// store pcpu in outer array
let listPos = result.map(function (e) { return e.pid; }).indexOf(resultProcess.pid);
if (listPos >= 0) {
result.cpu = resultProcess.pcpuu + resultProcess.pcpus;
}
// save new values
list_new[resultProcess.pid] = {
pcpuu: resultProcess.pcpuu,
pcpus: resultProcess.pcpus,
utime: resultProcess.utime,
stime: resultProcess.stime
};
}
// store old values
_process_cpu.all = allcpuu + allcpus;
_process_cpu.list = list_new;
_process_cpu.ms = Date.now() - _process_cpu.ms;
_process_cpu.result = result;
}
for (let i = 0; i < procStats.length; i++) {
let resultProcess = calcProcStatWin(procStats[i], allcpuu + allcpus, _process_cpu);
// store pcpu in outer array
let listPos = result.pids.indexOf(resultProcess.pid);
if (listPos >= 0) {
result.cpu = resultProcess.pcpuu + resultProcess.pcpus;
}
// save new values
list_new[resultProcess.pid] = {
pcpuu: resultProcess.pcpuu,
pcpus: resultProcess.pcpus,
utime: resultProcess.utime,
stime: resultProcess.stime
};
}
// store old values
_process_cpu.all = allcpuu + allcpus;
_process_cpu.list = list_new;
_process_cpu.ms = Date.now() - _process_cpu.ms;
_process_cpu.result = result;
if (callback) {
callback(result);
}
@ -1001,9 +1004,6 @@ function processLoad(proc, callback) {
resolve(result);
}
});
} else {
if (callback) { callback(result); }
resolve(result);
}
}
});
@ -1011,6 +1011,3 @@ function processLoad(proc, callback) {
}
exports.processLoad = processLoad;