2014-09-08 3 views
0

Я хотел бы оценить время выполнения процессов, содержащихся в javascript-функции, поэтому я создал простой код, который может оценить это.Javascript Performance

Я бы хотел, чтобы ваше мнение было экспертом и знаю, могу ли я использовать код для оценки времени выполнения более сложных процессов.

Я пробовал его на IE, FF и Chrome, а процессы Chrome были быстрее.

LINK TO THE EXPERIMENT

Это мой Javascript:

/* Global Vars */ 
var inputSearch = document.getElementById('texto'); 
var buscando = document.getElementById('buscando'); 

/* TIME PERFORMANCE > Catching */ 
var timer = document.getElementById('timer'); 
var maxtimer = document.getElementById('maxtimer'); 
var qmaxtimer = document.getElementById('querymaxtimer'); 

/* Adding Event */  
if(window.addEventListener) 
{inputSearch.addEventListener('keyup',searching,false);} 
else 
{if(window.attachEvent){inputSearch.attachEvent('keyup',searching);}} 

/* Test Function */ 
function searching(event,callback) 
{ 

    /* TIME PERFORMANCE */ 
    /* >> Timer Ini */ 
    var i = performance.now(); 

    /* Do something........ */ 
    var query = this.value; 
    buscando.textContent = query; 
    /* Finish something ......... */ 

    /* TIME PERFORMANCE */ 
    /* >> Timer End */ 
    var f = performance.now(); 
    /* >> TotalTime */ 
    var totalTime = f - i; 
    var t; 
    if(totalTime < 1){ 
     if(totalTime<=0.0001){t= ' Nanoseconds?';} 
     else{t= ' Microseconds';} 
    }else{t = ' Miliseconds'}; 

    /* >> Max Time */ 
    var mt = parseFloat(maxtimer.textContent);   
    if(totalTime > mt){ 
     maxtimer.textContent = totalTime.toFixed(15) + t; 
     qmaxtimer.textContent=query; 
    } 

    /* >> Current Time */ 
    timer.textContent = totalTime.toFixed(15) + t; 
} 

Спасибо.

P.D .: Извините за мой плохой английский :-)

+9

http://jsperf.com/ – SLaks

+0

http://benchmarkjs.com/ – lxg

+0

https://developer.chrome.com/devtools/docs/cpu-profiling –

ответ

0

Такого рода измерения не может быть действительно достигнуто с помощью редактирования кода. Прежде всего, может быть слишком сложно просто отредактировать каждый метод в вашем коде, чтобы добавить эти вызовы времени, во-вторых, вы можете сломать материал в этом процессе.

Я хотел бы предложить вам использовать инструменты производительности, присутствующие в обоих Firefox и Chrome, с помощью них вы можете измерить время, проведенное в различных частях кода, а также узкие места и т.д.

Вы также можете увидеть, где ваш Пользовательский интерфейс застыл, и какой код был суперэффективен.

Firefox: https://developer.mozilla.org/en-US/docs/Tools/Profiler Chrome: https://developer.chrome.com/devtools/docs/timeline

+0

Спасибо за ваш комментарий ! – cimadelmundo