我是初学,发现nodejs 性能好差!!!
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;
// 完成
});
用上面的代码,遍历home目录中的全部文件,/home下面只有14万个文件,nodejs会卡死,跑到中间就死了。
python 40秒可以全部将文件打印在console上。
nodejs还有学习的必要吗?
下面这段代码来至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没有任何性能优势,是劣势,运行慢点不可怕,它会卡死!!!!
我觉得楼主没有进行深入的思考就妄加评论一门语言。
readSync 是同步方法 ,其碰到大文件一次读取 内存会爆掉,所以就会让你觉得卡死了,
正确的方式应该是使用 stream 流的形式进行文件的读写。
你用node内置模块fs去遍历吧。
node最大的优势是异步,但是你用的是同步的方法