node.js - nodejs性能好差
过去多啦不再A梦
过去多啦不再A梦 2017-06-20 10:06:41
0
3
1288

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

过去多啦不再A梦
过去多啦不再A梦

全部回复(3)
代言

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

学霸

你用node内置模块fs去遍历吧。

Ty80

node最大的优势是异步,但是你用的是同步的方法

热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责声明 Sitemap
PHP中文网:公益在线PHP培训,帮助PHP学习者快速成长!