2011-01-24 27 views
11

स्क्रिप्ट को शुरू होने से चलाने के लिए कितना समय लगता है?मैं स्क्रिप्ट के निष्पादन समय को कैसे माप सकता हूं?

start-timing 
    //CODE 
end-timing 
+1

याद रखें, एक व्याकरण की दृष्टि से सही शीर्षक और प्रासंगिक टैग सभी फर्क नहीं पड़ता की तरह काम करने के लिए है। – ChaosPandion

उत्तर

38

संपादित: जनवरी 2011 में, यह सबसे अच्छा उपलब्ध समाधान था। अन्य समाधान (जैसे performance.now() अब प्राथमिकता दी जानी चाहिए

var start = new Date(); 
    // CODE 
var time = new Date() - start; 
// time is the number of milliseconds it taken to execute the script 

तुम भी रैप करने के लिए है कि एक समारोह में चाहते हो सकता है:।

function time_my_script(script) { 
    var start = new Date(); 
    script(); 
    return new Date() - start; 
} 

// call it like this: 
time = time_my_script(function() { 
    // CODE 
}); 

// or just like this: 
time = time_my_script(func); 

आप अपने कोड प्रोफाइल की कोशिश कर रहे हैं, तो आप कर सकते हैं Firebug विस्तार है, जो एक जावास्क्रिप्ट प्रोफाइलर शामिल कोशिश यह रूपरेखा के लिए एक महान यूजर इंटरफेस है, लेकिन यह भी अपने console api साथ प्रोग्राम के रूप में किया जा सकता है:।

console.time('timer1'); 
    // CODE 
console.timeEnd('timer1'); // this prints times on the console 

console.profile('profile1'); 
    // CODE 
console.profileEnd('profile1'); // this prints usual profiling informations, per function, etc. 
+2

आपको 'getTime() 'को कॉल करने की आवश्यकता नहीं है:' -' ऑपरेटर का उपयोग करके प्रत्येक 'दिनांक' ऑब्जेक्ट को इसके समय मूल्य में परिवर्तित कर देता है। उदाहरण के लिए, 'नई तिथि() - प्रारंभ करें; ' –

+0

अच्छा, मैंने स्क्रिप्ट बदल दी, धन्यवाद :) – arnaud576875

+0

मुझे आश्चर्य होता है कि कभी-कभी समाधान कितने सरल और सुरुचिपूर्ण होते हैं! :-) – dotslash

8

new Date() के बजाय performance.now() का उपयोग करें। यह एक अधिक सटीक और बेहतर परिणाम प्रदान करता है। इस जवाब https://stackoverflow.com/a/15641427/730000

0

यहाँ देखें एक त्वरित समारोह एक स्टॉपवॉच

var Timer = function(id){ 
    var self = this; 
    self.id = id; 
    var _times = []; 
    self.start = function(){ 
    var time = performance.now(); 
    console.log('[' + id + '] Start'); 
    _times.push(time); 
    } 
    self.lap = function(time){ 
    time = time ? time: performance.now(); 
    console.log('[' + id + '] Lap ' + time - _times[_times.length - 1]); 
    _times.push(time); 
    } 
    self.stop = function(){ 
    var time = performance.now(); 
    if(_times.length > 1){ 
     self.lap(time); 
    } 
    console.log('[' + id + '] Stop ' + (time - _times[0])); 
    _times = []; 
    } 
} 
// called with 
var timer = new Timer('process label'); 
timer.start(); // logs => '[process label] Start' 
// ... code ... 
timer.lap(); // logs => '[process label] Lap ' + lap_time 
// ... code ... 
timer.stop(); // logs => '[process label] Stop ' + start_stop_diff 
संबंधित मुद्दे