Ich bin ein Anfänger und habe festgestellt, dass die Leistung von NodeJS sehr schlecht ist! ! !
var rd=require('rd');
var files = rd.readSync('/home');
// 异步遍历目录下的所有文件
rd.each('/home', function (f, s, next) {
// 每找到一个文件都会调用一次此函数
// 参数s是通过 fs.stat() 获取到的文件属性值
console.log('file: %s', f);
// 必须调用next()才能继续
next();
}, function (err) {
if (err) throw err;
// 完成
});
Verwenden Sie den obigen Code, um alle Dateien im Home-Verzeichnis zu durchlaufen. Es bleiben nur 140.000 Dateien unter /home hängen und sterben in der Mitte.
Python kann alle Dateien in 40 Sekunden auf der Konsole drucken.
Ist es noch notwendig, NodeJS zu lernen?
Der folgende Code stammt von stackoverflow.
var fs = require('fs');
var path = require('path');
var walk = function(directoryName) {
fs.readdir(directoryName, function(e, files) {
files.forEach(function(file) {
fs.stat(directoryName + path.sep + file, function(e, f) {
if (f.isDirectory()) {
walk(directoryName + path.sep + file)
} else {
console.log(' - ' + file)
}
})
})
})
}
walk("/home")
Nodejs hat auch keinen Leistungsvorteil, es ist nicht schlimm, wenn es langsamer läuft, es bleibt hängen. ! ! !
我觉得楼主没有进行深入的思考就妄加评论一门语言。
readSync 是同步方法 ,其碰到大文件一次读取 内存会爆掉,所以就会让你觉得卡死了,
正确的方式应该是使用 stream 流的形式进行文件的读写。
你用node内置模块fs去遍历吧。
node最大的优势是异步,但是你用的是同步的方法