簡體   English   中英

為什么執行相同的JavaScript代碼所需的時間會有所不同

[英]why the time taken to execute same javascript code varies

查看控制台,每次我都不知道為什么時間會有所不同

我試圖執行一個函數並獲取它所花費的時間,我使用了console.time(),但是每次運行它時,它都會顯示不同的時間。還有一點,下划線所花費的時間是否比正常執行時間還要長。

 function map(){ console.time('mycode'); var arr = [234345345,345346,5445645,456456,456456,234,467,234234234,456,43535,456,12,3123123123,456,456456,1231235,6456456,234,234456,4,5632452344,65,543452334124436,2345,345346,5445645,456456,456456,234,467,234234234,456,43535,456,12,3123123123,456,456456,1231235,6456456,234,234456,4,5632452344,65,543452334124436,2345,345346,5445645,456456,456456,234,467,234234234,456,43535,456,12,3123123123,456,456456,1231235,6456456,234,234456,4,5632452344,65,543452334124436,2345,345346,5445645,456456,456456,234,467,234234234,456,43535,456,12,3123123123,456,456456,1231235,6456456,234,234456,4,5632452344,65,543452334124436,2345,345346,5445645,456456,456456,234,467,234234234,456,43535,456,12,3123123123,456,456456,1231235,6456456,234,234456,4,5632452344,65,543452334124436,2345,345346,5445645,456456,456456,234,467,234234234,456,43535,456,12,3123123123,456,456456,1231235,6456456,234,234456,4,5632452344,65,543452334124436,2345,345346,5445645,456456,456456,234,467,234234234,456,43535,456,12,3123123123,456,456456,1231235,6456456,234,234456,4,5632452344,65,543452334124436,2345,345346,5445645,456456,456456,234,467,234234234,456,43535,456,12,3123123123,456,456456,1231235,6456456,234,234456,4,5632452344,65,543452334124436,2345,345346,5445645,456456,456456,234,467,234234234,456,43535,456,12,3123123123,456,456456,1231235,6456456,234,234456,4,5632452344,65,543452334124436,2345,345346,5445645,456456,456456,234,467,234234234,456,43535,456,12,3123123123,456,456456,1231235,6456456,234,234456,4,5632452344,65,543452334124436,2345,345346,5445645,456456,456456,234,467,234234234,456,43535,456,12,3123123123,456,456456,1231235,6456456,234,234456,4,5632452344,65,543452334124436,2345,345346,5445645,456456,456456,234,467,234234234,456,43535,456,12,3123123123,456,456456,1231235,6456456,234,234456,4,5632452344,65,543452334124436,2345,345346,5445645,456456,456456,234,467,234234234,456,43535,456,12,3123123123,456,456456,1231235,6456456,234,234456,4,5632452344,65,543452334124436,2345,345346,5445645,456456,456456,234,467,234234234,456,43535,456,12,3123123123,456,456456,1231235,6456456,234,234456,4,5632452344,65,543452334124436,2345,345346,2345]; var result = []; var constant = 3; var length = arr.length; //will avoid calculation of length each time for(i=0;i<length;i++){ temp = arr[i] * constant; result.push(temp); } console.timeEnd('mycode'); console.time('mycode1'); var underscore = _.map([arr], function(num){ return num * 3; }); console.timeEnd('mycode1'); } function where(){ console.time("myCode"); var arr = [{title: "Cymbeline", author: "Shakespeare", year: 1611}, {title: "The Tempest", author: "Shakespeare", year: 1615}, {title: "The Tempest", author: "Shakespeare", year: 1613}, {title: "The Tempest", author: "Shakespeare", year: 1615}, {title: "The Tempest", author: "Shakespeare", year: 1613}, {title: "The Tempest", author: "Shakespeare", year: 1615}, {title: "The Tempest", author: "Shakespeare", year: 1613}, {title: "The Tempest", author: "Shakespeare", year: 1615}, {title: "The Tempest", author: "Shakespeare", year: 1613}, {title: "The Tempest", author: "Shakespeare", year: 1615}, {title: "The Tempest", author: "Shakespeare", year: 1613}, {title: "The Tempest", author: "Shakespeare", year: 1615}, {title: "The Tempest", author: "Shakespeare", year: 1613}, {title: "The Tempest", author: "Shakespeare", year: 1615}, {title: "The Tempest", author: "Shakespeare", year: 1613}, {title: "The Tempest", author: "Shakespeare", year: 1615}, {title: "The Tempest", author: "Shakespeare", year: 1613}, {title: "The Tempest", author: "Shakespeare", year: 1615}, {title: "The Tempest", author: "Shakespeare", year: 1613}, {title: "The Tempest", author: "Shakespeare", year: 1615}, {title: "The Tempest", author: "Shakespeare", year: 1613}, {title: "The Tempest", author: "Shakespeare", year: 1615}, {title: "The Tempest", author: "Shakespeare", year: 1613}, {title: "The Tempest", author: "Shakespeare", year: 1615}, {title: "The Tempest", author: "Shakespeare", year: 1613}, {title: "The Tempest", author: "Shakespeare", year: 1615}, {title: "The Tempest", author: "Shakespeare", year: 1613}, {title: "The Tempest", author: "Shakespeare", year: 1615}, {title: "The Tempest", author: "Shakespeare", year: 1613}, {title: "The Tempest", author: "Shakespeare", year: 1615}, {title: "The Tempest", author: "Shakespeare", year: 1613}, {title: "The Tempest", author: "Shakespeare", year: 1615}, {title: "The Tempest", author: "Shakespeare", year: 1613}, {title: "The Tempest", author: "Shakespeare", year: 1615}, {title: "The Tempest", author: "Shakespeare", year: 1613}, {title: "The Tempest", author: "Shakespeare", year: 1615}, {title: "The Tempest", author: "Shakespeare", year: 1613}, {title: "The Tempest", author: "Shakespeare", year: 1615}, {title: "The Tempest", author: "Shakespeare", year: 1613}, {title: "The Tempest", author: "Shakespeare", year: 1615}, {title: "The Tempest", author: "Shakespeare", year: 1613}, {title: "The Tempest", author: "Shakespeare", year: 1615}, {title: "The Tempest", author: "Shakespeare", year: 1613}, {title: "The Tempest", author: "Shakespeare", year: 1615}, {title: "The Tempest", author: "Shakespeare", year: 1613}, {title: "The Tempest", author: "Shakespeare", year: 1615}, {title: "The Tempest", author: "Shakespeare", year: 1613}, {title: "The Tempest", author: "Shakespeare", year: 1615}, {title: "The Tempest", author: "Shakespeare", year: 1613}, {title: "The Tempest", author: "Shakespeare", year: 1615}, {title: "The Tempest", author: "Shakespeare", year: 1613}, {title: "The Tempest", author: "Shakespeare", year: 1615}, {title: "The Tempest", author: "Shakespeare", year: 1613}, {title: "The Tempest", author: "Shakespeare", year: 1615}, {title: "The Tempest", author: "Shakespeare", year: 1613}, {title: "The Tempest", author: "Shakespeare", year: 1615}, {title: "The Tempest", author: "Shakespeare", year: 1613}, {title: "The Tempest", author: "Shakespeare", year: 1615}, {title: "The Tempest", author: "Shakespeare", year: 1613}, {title: "The Tempest", author: "Shakespeare", year: 1615}, {title: "The Tempest", author: "Shakespeare", year: 1613}, {title: "The Tempest", author: "Shakespeare", year: 1615}, {title: "The Tempest", author: "Shakespeare", year: 1613}, {title: "The Tempest", author: "Shakespeare", year: 1615}, {title: "The Tempest", author: "Shakespeare", year: 1613}, {title: "The Tempest", author: "Shakespeare", year: 1615}, {title: "The Tempest", author: "Shakespeare", year: 1613}, {title: "The Tempest", author: "Shakespeare", year: 1615}, {title: "The Tempest", author: "Shakespeare", year: 1613}, {title: "The Tempest", author: "Shakespeare", year: 1615}, {title: "The Tempest", author: "Shakespeare", year: 1613}, {title: "The Tempest", author: "Shakespeare", year: 1615}, {title: "The Tempest", author: "Shakespeare", year: 1613}, {title: "The Tempest", author: "Shakespeare", year: 1615}, {title: "The Tempest", author: "Shakespeare", year: 1613}, {title: "The Tempest", author: "Shakespeare", year: 1615}, {title: "The Tempest", author: "Shakespeare", year: 1613}, {title: "The Tempest", author: "Shakespeare", year: 1615}, {title: "The Tempest", author: "Shakespeare", year: 1613}, {title: "The Tempest", author: "Shakespeare", year: 1615}, {title: "The Tempest", author: "Shakespeare", year: 1613}, {title: "The Tempest", author: "Shakespeare", year: 1615} ]; var author = 'Shakespeare'; var year = '1611'; var result = []; var length = arr.length; //will avoid calculation of length each time for(i=0;i<length;i++){ //you know that and takes more time than or statement if(arr[i]['author'] == author && arr[i]['year'] == year){ result.push(arr[i]); } } console.log(result) console.timeEnd("myCode"); console.time("myCode1"); var underscore = _.filter(arr, {author: "Shakespeare", year: 1611}); console.log(underscore) console.timeEnd("myCode1"); } 
 .container{ width:calc(100% - 200px); text-align:center; margin:0 auto; background:#f4f4f4; } 
 <script src="http://underscorejs.org/underscore-min.js"></script> <h1>Evaluating time </h1> <input type='button' onclick='map()' value='Execute'> <input type='button' onclick='where()' value='Execute'> 

執行代碼所需的時間將因CPU正在執行的其他工作而異。 由於計算機上正在運行其他進程,因此不斷發生中斷。 您的Web應用程序只是許多需要占用CPU時間的應用程序之一。 還有一些因素,例如CPU對頻繁請求的數據以及OS緩存進行緩存。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM