Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 28.11.2018, 15:58
Аспирант
Отправить личное сообщение для Marson Посмотреть профиль Найти все сообщения от Marson
 
Регистрация: 14.08.2018
Сообщений: 65

Напишите функцию makeProfileTimer, которая служит для замера времени выполнения друго
Напишите функцию makeProfileTimer, которая служит для замера времени выполнения другого кода и работает следующим образом:

var timer = makeProfileTimer()
doSomething(); //некий код, время выполнения которого мы хотим измерить с высокой точностью
alert(timer()); //alert должен вывести время в микросекундах от выполнения makeProfileTimer до момента вызова timer(),
// т. е. измерить время выполнения doSomething

function makeProfileTimer(){
  var t1 = performance.now();
  return function (){
    var t2 = performance.now();
    console.log(t2-t2);
  }
}

 function greetAllSample(){
                   var arr = [];
                   for(var i=0;i<arguments.length;i++){
                       arr[i] = arguments[i];
                  }
                   return arr;
                  }
                  //alert("Hello" + greetAllSample(" Superman"));

var timer = makeProfileTimer();
console.log("Hello" + greetAllSample(" Superman"));
timer();


Помогите понять, уважаемые!
Ответить с цитированием
  #2 (permalink)  
Старый 28.11.2018, 16:06
Аспирант
Отправить личное сообщение для Marson Посмотреть профиль Найти все сообщения от Marson
 
Регистрация: 14.08.2018
Сообщений: 65

Синтаксическая ошибка console.log(t2-t1); А так правильно?
Ответить с цитированием
  #3 (permalink)  
Старый 28.11.2018, 16:07
Аватар для j0hnik
Профессор
Отправить личное сообщение для j0hnik Посмотреть профиль Найти все сообщения от j0hnik
 
Регистрация: 01.12.2016
Сообщений: 3,650

если хотим замерить с высокой точность, должно быть меньше абстракций
var time = performance.now();
// некий код (функция) которую будем мерить
time = performance.now() - time;
console.log('Время выполнения = ', time);
Ответить с цитированием
  #4 (permalink)  
Старый 28.11.2018, 17:08
Аватар для j0hnik
Профессор
Отправить личное сообщение для j0hnik Посмотреть профиль Найти все сообщения от j0hnik
 
Регистрация: 01.12.2016
Сообщений: 3,650

Function.prototype.makeProfileTimer = function(...arg){
var time = performance.now();
var x = this(...arg);
time = performance.now() - time;
console.log('Время выполнения = ', time);
return x;
};

function otherFunc(a,b){
	console.log(a,b);
}

otherFunc.makeProfileTimer(1,2);


вот вам вариант
если хотите мерить скорость, вызываете метод makeProfileTimer и аргументы передаете в него.

Последний раз редактировалось j0hnik, 28.11.2018 в 17:14.
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Правильно вызвать массив biryukovm Элементы интерфейса 3 19.03.2018 13:31
Ищу функцию для canvas, которая будет перемещать мой объект на позицию х,у eko24 Events/DOM/Window 0 12.10.2013 00:33
поиск классов внутри тега yozuul jQuery 24 14.06.2013 22:00
Динамическое создание iframe в Firefox mrbean11 Firefox/Mozilla 8 02.11.2012 21:23