用Javascript计算运行时间

用Javascript计算运行时间,javascript,Javascript,我想用下面的代码来计算运行循环所需的时间,但不知怎的,我尝试过的所有东西都不起作用 我试过使用date,但它提供了非常不准确的时间 我尝试使用另一个间隔来检查元素是否已经存在,以及一些类似的解决方案,等等,但是结果总是一样的,Javascript总是在循环完成之前检查事情 var t=0; 函数myStartFunction(){ myVar=setInterval(函数(){ t++; document.getElementById(“tempo”).innerHTML=“经过的时间:”+t

我想用下面的代码来计算运行循环所需的时间,但不知怎的,我尝试过的所有东西都不起作用

我试过使用date,但它提供了非常不准确的时间

我尝试使用另一个间隔来检查元素是否已经存在,以及一些类似的解决方案,等等,但是结果总是一样的,Javascript总是在循环完成之前检查事情

var t=0;
函数myStartFunction(){
myVar=setInterval(函数(){
t++;
document.getElementById(“tempo”).innerHTML=“经过的时间:”+t+“segundos”;
}, 1000);
}
myStartFunction();
函数myStopFunction(){
净距(myVar);
}
var n=“”;
var i=0;
而(i<100000){
n+=“
”+i; i++; 如果(i==100000){ ///////////////////净距(myVar); } } document.getElementById(“范围”).innerHTML=n

循环运行时间


停止

运行时间:0秒


您可以使用
Date
对象的
getTime()
函数来获取与当前时间关联的UNIX时间戳

让initialTime=newdate().getTime();
对于(设i=0;i<100000000;i++){
//做点什么
}
让finalTime=new Date().getTime();

console.log('这花费了:'+(finalTime-initialTime)+'毫秒')
您可以使用
Date
对象的
getTime()
函数来获取与当前时间关联的UNIX时间戳

让initialTime=newdate().getTime();
对于(设i=0;i<100000000;i++){
//做点什么
}
让finalTime=new Date().getTime();

console.log('这花费了:'+(finalTime-initialTime)+'毫秒')使用
性能
()。或检查

设t=0;
让start=performance.now();
设padZero=(v,n=2)=>`${v}`.padStart(n,0”);
让toTime=v=>
`经过时间(小时:毫米:秒:毫秒)${
padZero(数学楼层(v/(60*60000)))}:${
padZero(数学楼层(v/60000))}:${
padZero(数学楼层(v/1000))}:${
padZero(数学层(v%1000),3)};
myStartFunction();
函数myStartFunction(){
如果(performance.now()>10000){
返回console.log(`${toTime(performance.now()-start)}END`);
}
log(toTime(performance.now()-start));
setTimeout(myStartFunction,1000);
}

作为控制台包装{top:0;最大高度:100%!important;}
使用
性能
()。或检查

设t=0;
让start=performance.now();
设padZero=(v,n=2)=>`${v}`.padStart(n,0”);
让toTime=v=>
`经过时间(小时:毫米:秒:毫秒)${
padZero(数学楼层(v/(60*60000)))}:${
padZero(数学楼层(v/60000))}:${
padZero(数学楼层(v/1000))}:${
padZero(数学层(v%1000),3)};
myStartFunction();
函数myStartFunction(){
如果(performance.now()>10000){
返回console.log(`${toTime(performance.now()-start)}END`);
}
log(toTime(performance.now()-start));
setTimeout(myStartFunction,1000);
}

.as控制台包装{top:0;最大高度:100%!important;}
更新:我用KooiInc代码以正确的格式制作了这个,并更改了日期。性能时间。现在()

我对你的代码做了一些修改,这应该可以正确地计算while循环的时间。注释掉剩下的JavaScript代码,并将此代码放入脚本中

我不知道你需要什么ClearIntervalFunction,但是如果你给我更多关于你需要什么的细节,我可以帮助你创建这个函数

function loop() {
  let n = "";
  let i = 0;

   while (i < 100000)
   {

    n += "<br>" + i;
    i++;

  }
  return n;
}

  function segundoFormatter(segundo) {
     let zeros = 8;
     let segundoArray = segundo.toString().split(".");
     let number2Add = zeros - segundoArray[0].length;
     let STR = "";
       for(let i = 0; i < number2Add; i++){
           STR += "0";
           if(i == 1 || i == 3 || i == 5){
               STR += ":";
           }
       }
       let finalStr = STR + segundoArray[0] + segundoArray[1];
       return finalStr.toString().substring(0,13);
     }



    window.onload = function(){
        let startTime = performance.now() 
        let n = loop();
        let endTime = performance.now() 
        let timeLoopTakes = (endTime - startTime);//00:00:00:0000
       // segundoFormatter(timeLoopTakes);
        document.getElementById("tempo").innerHTML = "Elapsed time: " + 
        segundoFormatter(timeLoopTakes) + " segundos";
      //You can uncomment this line belowand get like 10000 things in your dom
     //document.getElementById("range").innerHTML = n;
 }
函数循环(){
让n=”“;
设i=0;
而(i<100000)
{
n+=“
”+i; i++; } 返回n; } 函数segundo格式化程序(segundo){ 设零=8; 让segundoArray=segundo.toString().split(“.”); 设number2Add=zeros-segudoArray[0]。长度; 设STR=“”; for(设i=0;i
更新:我用KooiInc代码以正确的格式制作了这个,并更改了日期。性能时间。现在()

我对你的代码做了一些修改,这应该可以正确地计算while循环的时间。注释掉剩下的JavaScript代码,并将此代码放入脚本中

我不知道你需要什么ClearIntervalFunction,但是如果你给我更多关于你需要什么的细节,我可以帮助你创建这个函数

function loop() {
  let n = "";
  let i = 0;

   while (i < 100000)
   {

    n += "<br>" + i;
    i++;

  }
  return n;
}

  function segundoFormatter(segundo) {
     let zeros = 8;
     let segundoArray = segundo.toString().split(".");
     let number2Add = zeros - segundoArray[0].length;
     let STR = "";
       for(let i = 0; i < number2Add; i++){
           STR += "0";
           if(i == 1 || i == 3 || i == 5){
               STR += ":";
           }
       }
       let finalStr = STR + segundoArray[0] + segundoArray[1];
       return finalStr.toString().substring(0,13);
     }



    window.onload = function(){
        let startTime = performance.now() 
        let n = loop();
        let endTime = performance.now() 
        let timeLoopTakes = (endTime - startTime);//00:00:00:0000
       // segundoFormatter(timeLoopTakes);
        document.getElementById("tempo").innerHTML = "Elapsed time: " + 
        segundoFormatter(timeLoopTakes) + " segundos";
      //You can uncomment this line belowand get like 10000 things in your dom
     //document.getElementById("range").innerHTML = n;
 }
函数循环(){
让n=”“;
设i=0;
而(i<100000)
{
n+=“
”+i; i++; } 返回n; } 函数segundo格式化程序(segundo){ 设零=8; 让segundoArray=segundo.toString().split(“.”); 设number2Add=zeros-segudoArray[0]。长度; 设STR=“”; for(设i=0;i