SORU
16 Mayıs 2012, ÇARŞAMBA


Nasıl geri çağrıları ile javascript kodu yürütme zamanı ölçmek için

Node.js tercüman kullanarak idam ediyorum bu javascript kodu bir parça var.

for(var i = 1; i < LIMIT; i  ){
    db.users.save({id : i, name : "MongoUser ["   i   "]"}, function(err, saved) {
          if( err || !saved ) console.log("Error");
          else console.log("Saved");
    });
}

Bu db ekleme işlemi tarafından alınan ölçmek için nasıl bilmek istiyorum. Ve bu kod parçası sonra önce Tarih değerleri arasındaki farkı tahmin edemeyeceğim ama kod asenkron doğası gereği yanlış olur.

CEVAP
27 Ocak 2013, Pazar


Bunun için tasarlanmış bir yöntem yoktur. process.hrtime(); Check out .

Ben temelde benim app üstünde bu koymak.

var start = process.hrtime();

var elapsed_time = function(note){
    var precision = 3; // 3 decimal places
    var elapsed = process.hrtime(start)[1] / 1000000; // divide by a million to get nano to milli
    console.log(process.hrtime(start)[0]   " s, "   elapsed.toFixed(precision)   " ms - "   note); // print message   time
    start = process.hrtime(); // reset the timer
}

Daha sonra bu fonksiyonları nasıl görmek için kullanıyorum. İşte bir metin dosyasının içeriğini adlı yazdıran temel bir örnek"": . output.txt

var debug = true;
http.createServer(function(request, response) {

    if(debug) console.log("----------------------------------");
    if(debug) elapsed_time("recieved request");

    var send_html = function(err, contents) {
        if(debug) elapsed_time("start send_html()");
        response.writeHead(200, {'Content-Type': 'text/html' } );
        response.end(contents);
        if(debug) elapsed_time("end send_html()");
    }

    if(debug) elapsed_time("start readFile()");
    fs.readFile('output.txt', send_html);
    if(debug) elapsed_time("end readFile()");

}).listen(8080);

İşte bir terminalde çalıştırabilirsiniz hızlı bir test (BASH shell):

for i in {1..100}; do echo $i; curl http://localhost:8080/; done

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • ★TheCrono Official Channel★

    ★TheCrono

    3 Mayıs 2014
  • TantalizingTrance

    TantalizingT

    15 ŞUBAT 2009
  • FusioNGamiing

    FusioNGamiin

    10 Temmuz 2007