Используя наработки в предыдущей моей теме:
"Самый быстрый и короткий способ получить текст до первого пробела",
решил сделать функцию
вычисления среднего времени запуска тестовой функции n-раз с паузой между запусками k, но не получилось:
var
arr = [], // массив времен выполнения
i = 0, n = 10, // запустить тестовую функцию 10 раз
k = 2000, // интервал запуска
p = performance, // штуковина для точного измерения времени?
result, // сюда сохраним среднее значений массива 'arr'
timerId,
t0, t1; // соответственно, моменты запуска и завершения тест. функции
function test(){
'lorem'.repeat(10000) // повторяем и соединяем строку 'lorem'
}
timerId = setTimeout(function run(){
t0 = p.now(); // время запуска
test(); // тестовая функция
t1 = p.now(); // время завершения
arr.push(t1 - t0); // время выполнения
if (i < n){ // проверяем сколько раз запустили тестовую функцию
i++
}
else {
clearTimeout(timerId); // сброс
result = (arr.reduce((a,b)=>a+b,0))/arr.length // вычисляем среднее времен выполнения
};
setTimeout(run, k);
}, k);
alert(result); // undefined -> расстроен ((
Запускать функцию хочу как тут:
https://learn.javascript.ru/settimeout-setinterval
Цитата:
"
Рекурсивный setTimeout гарантирует паузу между вызовами, setInterval – нет"
Цель:
->