-8

我是初学,发现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没有任何性能优势,是劣势,运行慢点不可怕,它会卡死!!!!

查看全部 3 个回答

2

我觉得楼主没有进行深入的思考就妄加评论一门语言。
readSync 是同步方法 ,其碰到大文件一次读取 内存会爆掉,所以就会让你觉得卡死了,
正确的方式应该是使用 stream 流的形式进行文件的读写。