Answers:
传递该-n
选项以跳过解析IP连接的DNS名称。几乎可以肯定,这将是所有放缓的最大部分。
我发现了这个小NPM软件包,它在加快文件lsof的速度方面做得很出色:https : //www.npmjs.com/package/lsof-mac-fast。
我创建了一个包装器脚本来使用它:
node ~/tools/MacOs/lsof.js db.mv.db 1000
repeating using interval: 1000
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
java 7336 jumar 256u REG 1,4 194465792 53854404
db.mv.db
这是我的脚本:
// https://www.npmjs.com/package/lsof-mac-fast
var fastLsof = require('lsof-mac-fast');
var myArgs = process.argv.slice(2);
var fileToCheck = myArgs[0];
var repeatIntervalMs = myArgs[1];
// console.log('myArgs: ', myArgs);
function lsofFile(file) {
fastLsof.lsof([file], function(err, stdout, stderr) {process.stdout.write(stdout)});
}
if (repeatIntervalMs) {
// repeat until killed
// https://javascript.info/settimeout-setinterval
console.log('repeating using interval: ' + repeatIntervalMs);
var timerId = setInterval(() => lsofFile(fileToCheck), repeatIntervalMs);
} else {
// just one time
lsofFile(fileToCheck);
}
重复间隔可能非常低,例如10 ms似乎可以正常工作。
lsof
显示什么?该文件打开了多少个进程和线程?不运行lsof时CPU负载是多少?