Javascript性能

Javascript性能,javascript,performance,Javascript,Performance,我想计算javascript函数中包含的进程的执行时间,所以我创建了一个简单的代码来计算它 作为专家,我想听听您的意见,并知道我是否可以使用代码来评估更复杂流程的执行时间 我在IE、FF和Chrome上试用过,Chrome进程更快 这是我的Javascript: /* Global Vars */ var inputSearch = document.getElementById('texto'); var buscando = document.getElementById('buscand

我想计算javascript函数中包含的进程的执行时间,所以我创建了一个简单的代码来计算它

作为专家,我想听听您的意见,并知道我是否可以使用代码来评估更复杂流程的执行时间

我在IE、FF和Chrome上试用过,Chrome进程更快

这是我的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;
}
/*全局变量*/
var inputSearch=document.getElementById('texto');
var buscando=document.getElementById('buscando');
/*时间性能>捕捉*/
var timer=document.getElementById('timer');
var maxtimer=document.getElementById('maxtimer');
var qmaxtimer=document.getElementById('querymaxtimer');
/*添加事件*/
if(window.addEventListener)
{inputSearch.addEventListener('keyup',search,false);}
其他的
{if(window.attachEvent){inputSearch.attachEvent('keyup',search);}
/*测试功能*/
函数搜索(事件、回调)
{
/*时间性能*/
/*>>计时器Ini*/
var i=performance.now();
/*做点什么*/
var query=this.value;
buscando.textContent=查询;
/*完成某事*/
/*时间性能*/
/*>>计时器结束*/
var f=performance.now();
/*>>总时间*/
var totalTime=f-i;
变量t;
如果(总时间<1){
如果(总时间>最大时间*/
var mt=parseFloat(maxtimer.textContent);
如果(总时间>mt){
maxtimer.textContent=totalTime.toFixed(15)+t;
qmaxtimer.textContent=query;
}
/*>>当前时间*/
timer.textContent=totalTime.toFixed(15)+t;
}
多谢各位


p.D.:对不起,我的英语不好:-)

通过编辑代码永远无法真正实现这种测量。首先,编辑代码中的每个方法来添加这些计时调用可能太难了,其次,在这个过程中可能会破坏一些东西

我建议您使用Firefox和Chrome中的性能工具,通过这些工具,您可以测量代码各个部分所花费的时间以及瓶颈等

您还可以看到UI冻结的位置,以及哪些代码是超级高效的

火狐:
Chrome:

谢谢您的评论!