@Artem0071
Безработный mr. Junior

Почему такое странное время выполнения?

Нужно было высчитать некую координату
Нашел пару вариантов, оба работают одинаково

Решил сравнить по времени выполнения
Вот сам скрипт:
let test1 = performance.now()

      const middleFirst = (end.left - start.left) / 2

      test1 = performance.now() - test1

      let test2 = performance.now()

      const middleSecond = Math.trunc(8 * Math.sqrt(Math.abs(end.left - start.left)))

      test2 = performance.now() - test2

      console.log(test1, test2)


Я думал что самый быстрый вариант будет первый
НО!
Вот такие результаты я получил:
0.10000006295740604 0
1.7000000225380063 0.09999994654208422
0.10000006295740604 0
0 0.10000006295740604
0.09999994654208422 0
0.10000006295740604 0
0.10000006295740604 0
...


В общем удивительно (как по мне)
В первом варианте у нас всего 2 действия - вычитание и деление
Во втором - умножение, вычитание, корень, и тд..

Почему так получается?

============================
Сделал еще с console.time():
console.time('test1')
      const middleFirst = (end.left - start.left) / 2
      console.timeEnd('test1')

      console.time('test2')
      const middle = Math.trunc(8 * Math.sqrt(Math.abs(end.left - start.left)))
      console.timeEnd('test2')

      console.log('===================================')


Вот результаты:
5b6415becfe16475581922.png

Теперь второй вариант дольше...
Я запутался, чему верить?
  • Вопрос задан
  • 66 просмотров
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы