cari

Rumah  >  Soal Jawab  >  teks badan

node.js - prestasi nodejs adalah lemah

Saya seorang pemula dan mendapati bahawa prestasi nodejs sangat lemah! ! !

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;
  // 完成
});

Gunakan kod di atas untuk melintasi semua fail dalam direktori rumah Hanya terdapat 140,000 fail di bawah /home akan tersekat dan mati di tengah.
Python boleh mencetak semua fail ke konsol dalam masa 40 saat.

Adakah masih perlu mempelajari nodej?

Kod berikut datang daripada 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")

Ia juga tidak mempunyai kelebihan prestasi, ia adalah satu keburukan jika ia berjalan lebih perlahan, ia akan tersangkut! ! ! !

过去多啦不再A梦过去多啦不再A梦2756 hari yang lalu1334

membalas semua(3)saya akan balas

  • 代言

    代言2017-06-20 10:08:41

    Saya rasa poster itu membuat komen terburu-buru tentang bahasa tanpa berfikir secara mendalam.
    readSync ialah kaedah penyegerakan Apabila ia menemui fail besar dan membacanya sekali gus, memori akan meletup, jadi ia akan membuatkan anda berasa buntu
    Cara yang betul ialah menggunakan strim untuk membaca dan menulis fail.

    balas
    0
  • 欧阳克

    欧阳克2017-06-20 10:08:41

    Anda boleh menggunakan modul fs terbina dalam nod untuk melintasi.

    balas
    0
  • PHP中文网

    PHP中文网2017-06-20 10:08:41

    Kelebihan terbesar nod ialah tak segerak, tetapi anda menggunakan kaedah segerak

    balas
    0
  • Batalbalas