更改win下获取进程的方式,大幅缩减获取时间

This commit is contained in:
unknown
2020-04-20 19:45:46 +08:00
parent c4b8509da7
commit 15ae052ccd
4 changed files with 56 additions and 35 deletions

View File

@@ -47,16 +47,24 @@ tasklist = () =>
{
var tasklist = [];
if (isWin) {
exec('net session > NULL && echo 1 || echo 0', (err, stdout, stderr) => {
let isAdmin = parseInt(stdout),
IncludeUserName = isAdmin ? '-IncludeUserName' : '',
UserName = isAdmin ? ',UserName' : '';
powershell(`Get-Process ${IncludeUserName} | sort-object ws -descending | Select-Object ProcessName,Path,Description,WorkingSet${UserName} | ConvertTo-Json`, (stdout, stderr) => {
stderr && console.log(stderr);
tasklist = JSON.parse(stdout);
reslove(tasklist);
execFile(GetBinPath('ProcessKiller.exe'), ['getProcess'], { encoding: 'buffer' },(err, stdout, stderr) => {
err && reject(iconv.decode(stderr, 'gb18030'));
data = JSON.parse(iconv.decode(stdout, 'gb18030'));
data = data.sort((x,y) => {
return y.WorkingSet - x.WorkingSet;
});
reslove(data);
})
// exec('net session > NULL && echo 1 || echo 0', (err, stdout, stderr) => {
// let isAdmin = parseInt(stdout),
// IncludeUserName = isAdmin ? '-IncludeUserName' : '',
// UserName = isAdmin ? ',UserName' : '';
// powershell(`Get-Process ${IncludeUserName} | sort-object ws -descending | Select-Object ProcessName,Path,Description,WorkingSet${UserName} | ConvertTo-Json`, (stdout, stderr) => {
// stderr && console.log(stderr);
// tasklist = JSON.parse(stdout);
// reslove(tasklist);
// });
// })
} else {
exec('ps -A -o pid -o %cpu -o %mem -o user -o comm | sed 1d | sort -rnk 3', (err, stdout, stderr) => {
lines = stdout.split('\n');
@@ -97,7 +105,7 @@ taskkill = (task, path, callback) => {
}
}
findSecondIndex = (str, cha) => {
findThirdIndex = (str, cha) => {
var x = str.indexOf(cha);
var y = str.indexOf(cha, x + 1);
var z = str.indexOf(cha, y + 1);
@@ -109,10 +117,10 @@ icns2Base64 = icns => {
buffer = fs.readFileSync(icns, Buffer)
ImgHead = Buffer.from([0x89, 0x50, 0x4E, 0x47])
ImgTail = Buffer.from([0x49, 0x45, 0x4E, 0x44, 0xAE, 0x42, 0x60, 0x82])
var start = findSecondIndex(buffer, ImgHead);
var start = findThirdIndex(buffer, ImgHead);
// var WidthPos = start + 18;
// var ImgWidth = buffer.readInt16BE(WidthPos);
var end = findSecondIndex(buffer, ImgTail) + 8;
var end = findThirdIndex(buffer, ImgTail) + 8;
var b64 = buffer.slice(start, end).toString('base64')
return b64
}
@@ -144,4 +152,19 @@ GetIcons = PathList =>
})
reslove(data)
}
})
})
// var initTime = new Date().getTime();
// powershell(`Get-Process | sort-object ws -descending | Select-Object ProcessName,Path,Description,WorkingSet | ConvertTo-Json`, (stdout, stderr) => {
// stderr && console.log(stderr);
// tasklist = JSON.parse(stdout);
// console.log(tasklist);
// var EndTime = new Date().getTime();
// console.log(EndTime - initTime);
// })
// execFile(path.join('bin', 'ProcessKiller.exe'), ['getProcess'], (err, stdout, stderr) => {
// console.log(JSON.parse(stdout));
// var EndTime = new Date().getTime();
// console.log(EndTime - initTime);
// })