Je suis débutant et j'ai trouvé que les performances de nodejs sont très mauvaises ! ! !
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;
// 完成
});
Utilisez le code ci-dessus pour parcourir tous les fichiers du répertoire personnel. Il n'y a que 140 000 fichiers sous /home qui resteront bloqués et mourront au milieu.
Python peut imprimer tous les fichiers sur la console en 40 secondes.
Est-il encore nécessaire d'apprendre nodejs ?
Le code suivant provient de 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")
Il est également bloqué. Nodejs n'a aucun avantage en termes de performances, c'est un inconvénient. Ce n'est pas terrible s'il fonctionne plus lentement, il restera bloqué ! ! ! !
Je pense que l'affiche a fait un commentaire téméraire sur une langue sans y réfléchir profondément.
readSync est une méthode de synchronisation. Lorsqu'il rencontre un fichier volumineux et le lit immédiatement, la mémoire explose, vous vous sentirez donc bloqué.
La bonne méthode devrait être d'utiliser le flux pour lire et écrire des fichiers.
Vous pouvez utiliser le module fs intégré du nœud pour parcourir.
Le plus gros avantage du nœud est asynchrone, mais vous utilisez une méthode synchrone