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

  • MagmaRhino

    MagmaRhino

    16 Temmuz 2011
  • stokelycalm

    stokelycalm

    28 Aralık 2010
  • technodromeband's channel

    technodromeb

    28 NİSAN 2011