2016-06-23 1 views
0

См консоли время изменяется каждый раз, когда я не знает, почемупочему время, необходимое для выполнения того же яваскрипт кода меняется

Я пытаюсь выполнить функцию и получить время, затраченное на него, я использовал консоль .time(), но каждый раз, когда я запускаю его, отображается разное время. Еще одна вещь. Время, затраченное на подчеркивание, - это больше, чем обычно.

function map(){ 
 
\t \t 
 
\t \t console.time('mycode'); 
 
\t \t 
 
\t \t 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]; 
 
\t \t var result = []; 
 
\t \t var constant = 3; 
 
\t \t var length = arr.length; //will avoid calculation of length each time 
 
\t \t for(i=0;i<length;i++){ 
 
\t \t \t temp = arr[i] * constant; 
 
\t \t \t result.push(temp); 
 
\t \t } 
 
\t \t 
 
\t \t console.timeEnd('mycode'); 
 
\t \t 
 
\t \t console.time('mycode1'); 
 
\t \t 
 
\t \t var underscore = _.map([arr], function(num){ return num * 3; }); 
 
\t \t 
 
\t \t console.timeEnd('mycode1'); 
 
\t } 
 
\t 
 
\t function where(){ 
 
\t \t 
 
\t \t console.time("myCode"); 
 
\t \t var arr = [{title: "Cymbeline", author: "Shakespeare", year: 1611}, 
 
\t \t \t 
 
\t \t \t {title: "The Tempest", author: "Shakespeare", year: 1615}, 
 
\t \t \t {title: "The Tempest", author: "Shakespeare", year: 1613}, 
 
\t \t \t {title: "The Tempest", author: "Shakespeare", year: 1615}, 
 
\t \t \t {title: "The Tempest", author: "Shakespeare", year: 1613}, 
 
\t \t \t {title: "The Tempest", author: "Shakespeare", year: 1615}, 
 
\t \t \t {title: "The Tempest", author: "Shakespeare", year: 1613}, 
 
\t \t \t {title: "The Tempest", author: "Shakespeare", year: 1615}, 
 
\t \t \t {title: "The Tempest", author: "Shakespeare", year: 1613}, 
 
\t \t \t {title: "The Tempest", author: "Shakespeare", year: 1615}, 
 
\t \t \t {title: "The Tempest", author: "Shakespeare", year: 1613}, 
 
\t \t \t {title: "The Tempest", author: "Shakespeare", year: 1615}, 
 
\t \t \t {title: "The Tempest", author: "Shakespeare", year: 1613}, 
 
\t \t \t {title: "The Tempest", author: "Shakespeare", year: 1615}, 
 
\t \t \t {title: "The Tempest", author: "Shakespeare", year: 1613}, 
 
\t \t \t {title: "The Tempest", author: "Shakespeare", year: 1615}, 
 
\t \t \t {title: "The Tempest", author: "Shakespeare", year: 1613}, 
 
\t \t \t {title: "The Tempest", author: "Shakespeare", year: 1615}, 
 
\t \t \t {title: "The Tempest", author: "Shakespeare", year: 1613}, 
 
\t \t \t {title: "The Tempest", author: "Shakespeare", year: 1615}, 
 
\t \t \t {title: "The Tempest", author: "Shakespeare", year: 1613}, 
 
\t \t \t {title: "The Tempest", author: "Shakespeare", year: 1615}, 
 
\t \t \t {title: "The Tempest", author: "Shakespeare", year: 1613}, 
 
\t \t \t {title: "The Tempest", author: "Shakespeare", year: 1615}, 
 
\t \t \t {title: "The Tempest", author: "Shakespeare", year: 1613}, 
 
\t \t \t {title: "The Tempest", author: "Shakespeare", year: 1615}, 
 
\t \t \t {title: "The Tempest", author: "Shakespeare", year: 1613}, 
 
\t \t \t {title: "The Tempest", author: "Shakespeare", year: 1615}, 
 
\t \t \t {title: "The Tempest", author: "Shakespeare", year: 1613}, 
 
\t \t \t {title: "The Tempest", author: "Shakespeare", year: 1615}, 
 
\t \t \t {title: "The Tempest", author: "Shakespeare", year: 1613}, 
 
\t \t \t {title: "The Tempest", author: "Shakespeare", year: 1615}, 
 
\t \t \t {title: "The Tempest", author: "Shakespeare", year: 1613}, 
 
\t \t \t {title: "The Tempest", author: "Shakespeare", year: 1615}, 
 
\t \t \t {title: "The Tempest", author: "Shakespeare", year: 1613}, 
 
\t \t \t {title: "The Tempest", author: "Shakespeare", year: 1615}, 
 
\t \t \t {title: "The Tempest", author: "Shakespeare", year: 1613}, 
 
\t \t \t {title: "The Tempest", author: "Shakespeare", year: 1615}, 
 
\t \t \t {title: "The Tempest", author: "Shakespeare", year: 1613}, 
 
\t \t \t {title: "The Tempest", author: "Shakespeare", year: 1615}, 
 
\t \t \t {title: "The Tempest", author: "Shakespeare", year: 1613}, 
 
\t \t \t {title: "The Tempest", author: "Shakespeare", year: 1615}, 
 
\t \t \t {title: "The Tempest", author: "Shakespeare", year: 1613}, 
 
\t \t \t {title: "The Tempest", author: "Shakespeare", year: 1615}, 
 
\t \t \t {title: "The Tempest", author: "Shakespeare", year: 1613}, 
 
\t \t \t {title: "The Tempest", author: "Shakespeare", year: 1615}, 
 
\t \t \t {title: "The Tempest", author: "Shakespeare", year: 1613}, 
 
\t \t \t {title: "The Tempest", author: "Shakespeare", year: 1615}, 
 
\t \t \t {title: "The Tempest", author: "Shakespeare", year: 1613}, 
 
\t \t \t {title: "The Tempest", author: "Shakespeare", year: 1615}, 
 
\t \t \t {title: "The Tempest", author: "Shakespeare", year: 1613}, 
 
\t \t \t {title: "The Tempest", author: "Shakespeare", year: 1615}, 
 
\t \t \t {title: "The Tempest", author: "Shakespeare", year: 1613}, 
 
\t \t \t {title: "The Tempest", author: "Shakespeare", year: 1615}, 
 
\t \t \t {title: "The Tempest", author: "Shakespeare", year: 1613}, 
 
\t \t \t {title: "The Tempest", author: "Shakespeare", year: 1615}, 
 
\t \t \t {title: "The Tempest", author: "Shakespeare", year: 1613}, 
 
\t \t \t {title: "The Tempest", author: "Shakespeare", year: 1615}, 
 
\t \t \t {title: "The Tempest", author: "Shakespeare", year: 1613}, 
 
\t \t \t {title: "The Tempest", author: "Shakespeare", year: 1615}, 
 
\t \t \t {title: "The Tempest", author: "Shakespeare", year: 1613}, 
 
\t \t \t {title: "The Tempest", author: "Shakespeare", year: 1615}, 
 
\t \t \t {title: "The Tempest", author: "Shakespeare", year: 1613}, 
 
\t \t \t {title: "The Tempest", author: "Shakespeare", year: 1615}, 
 
\t \t \t {title: "The Tempest", author: "Shakespeare", year: 1613}, 
 
\t \t \t {title: "The Tempest", author: "Shakespeare", year: 1615}, 
 
\t \t \t {title: "The Tempest", author: "Shakespeare", year: 1613}, 
 
\t \t \t {title: "The Tempest", author: "Shakespeare", year: 1615}, 
 
\t \t \t {title: "The Tempest", author: "Shakespeare", year: 1613}, 
 
\t \t \t {title: "The Tempest", author: "Shakespeare", year: 1615}, 
 
\t \t \t {title: "The Tempest", author: "Shakespeare", year: 1613}, 
 
\t \t \t {title: "The Tempest", author: "Shakespeare", year: 1615}, 
 
\t \t \t {title: "The Tempest", author: "Shakespeare", year: 1613}, 
 
\t \t \t {title: "The Tempest", author: "Shakespeare", year: 1615}, 
 
\t \t \t {title: "The Tempest", author: "Shakespeare", year: 1613}, 
 
\t \t \t {title: "The Tempest", author: "Shakespeare", year: 1615}, 
 
\t \t \t {title: "The Tempest", author: "Shakespeare", year: 1613}, 
 
\t \t \t {title: "The Tempest", author: "Shakespeare", year: 1615}, 
 
\t \t \t {title: "The Tempest", author: "Shakespeare", year: 1613}, 
 
\t \t \t {title: "The Tempest", author: "Shakespeare", year: 1615}, 
 
\t \t \t {title: "The Tempest", author: "Shakespeare", year: 1613}, 
 
\t \t \t {title: "The Tempest", author: "Shakespeare", year: 1615} 
 
\t \t ]; 
 
\t \t var author = 'Shakespeare'; 
 
\t \t var year = '1611'; 
 
\t \t var result = []; 
 
\t \t var length = arr.length; //will avoid calculation of length each time 
 
\t \t for(i=0;i<length;i++){ //you know that and takes more time than or statement 
 
\t \t \t if(arr[i]['author'] == author && arr[i]['year'] == year){ 
 
\t \t \t \t result.push(arr[i]); 
 
\t \t \t } 
 
\t \t } 
 
\t \t console.log(result) 
 
\t \t console.timeEnd("myCode"); 
 
\t \t 
 
\t \t console.time("myCode1"); 
 
\t \t var underscore = _.filter(arr, {author: "Shakespeare", year: 1611}); 
 
\t \t 
 
\t \t console.log(underscore) 
 
\t \t console.timeEnd("myCode1"); 
 
\t }
.container{ 
 
\t \t width:calc(100% - 200px); 
 
\t \t text-align:center; 
 
\t \t margin:0 auto; 
 
\t \t background:#f4f4f4; 
 
\t }
<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'> 
 

+0

Почему у вас есть ожидание, что оно будет постоянным? Компьютеры не настолько стабильны, время всегда будет меняться хотя бы немного. –

+0

, если он немного покраснел, но иногда он дает 1,565 мс, а иногда и 0,056 мс .. это не так уж мало. –

ответ

1

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

+0

Я доволен вашим ответом, но вы можете объяснить мне, почему подчеркивание занимает больше времени, чем обычно, и при печати результатов в окне консоли условие отменяется –

+0

@ Karthikeyansundaramoorthi Функция подчеркивания '_map' соответствует принципам функционального программирования, поскольку она не вызывает никаких побочных эффектов для переданного массива. Вместо этого для каждой из них применяется функция преобразования и возвращается новый массив. Основополагающий код для создания такого поведения является более сложным, что связано с большей памятью и обработкой. Вместо этого вы получите более высокую производительность с помощью '_each', но это приведет к возникновению побочных эффектов. –

+0

спасибо Гидеон –

 Смежные вопросы

  • Нет связанных вопросов^_^