有时我会通过编写一段代码来让自己感到惊讶,这可能是我猜想的性能最差的代码。代码仅读取目录中的所有文件(文件为纯文本),并在 1/10 秒的间隔后在控制台上打印每个文件的每一行。现在使用下面的方法,如果文件中有 100 万行,将定义 100 万个 setTimeout 函数。并且每 1/10 秒一个 setTimeout 将调用其各自的函数。我只是好奇下面的代码将如何影响性能?在 nodejs env 中定义数百万个回调可以吗?你对下面的代码有什么想法。
function scanDir(dir){
fs.readdir(dir , function(err , list){
var interval = 0;
list.forEach(function(file, index){
lineReader.eachLine(dir + "/" + file, function(line, last) {
interval += 100;
(function(line){
setTimeout(function(){
console.log(line+"\n\r");
},interval)
})(line);
if (last) {
return false; // stop reading
}
});
})
})
}