Как видно из кода ниже, когда я увеличиваю размер строки, это приводит к разнице в 0 миллисекунд. Более того, существует несоответствие, так как число строк продолжает увеличиваться.
Я что-то здесь не так делаю?
let stringIn = document.getElementById('str');
let button = document.querySelector('button');
button.addEventListener('click', () => {
let t1 = performance.now();
functionToTest(stringIn.value);
let t2 = performance.now();
console.log(`time taken is ${t2 - t1}`);
});
function functionToTest(str) {
let total = 0;
for(i of str) {
total ++;
}
return total;
}
<input id="str">
<button type="button">Test string</button>
Я тоже пытался использовать await
, но результат тот же (см. Фрагмент кода ниже). Функция, включающая приведенный ниже код: async
:
let stringArr = this.inputString.split(' ');
let longest = '';
const t1 = performance.now();
let length = await new Promise(resolve => {
stringArr.map((item, i) => {
longest = longest.length < item.length ? longest : item;
i === stringArr.length - 1 ? resolve(longest) : '';
});
});
const diff = performance.now() - t1;
console.log(diff);
this.result = `The time taken in mili seconds is ${diff}`;
Я также пытался ответить на этот вопрос как , но он также противоречив.
В качестве обходного пути я попытался использовать функцию console.time
, но она не позволяет отображать время и также не точна.
Обновление : Я хочу создать интерфейс, подобный jsPerf , который будет очень похож на него, но для другой цели. В основном я хотел бы сравнить различные функции, которые будут зависеть от пользовательского ввода.