node.js - nodejs性能好差

浏览:55日期:2022-09-07

问题描述

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

问题解答

回答1:

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

回答2:

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

回答3:

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

相关文章: