node.js - les performances de nodejs sont médiocres
过去多啦不再A梦
过去多啦不再A梦 2017-06-20 10:06:41
0
3
1297

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é ! ! ! !

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

répondre à tous(3)
代言

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.

Ty80

Le plus gros avantage du nœud est asynchrone, mais vous utilisez une méthode synchrone

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal