Нужно было высчитать некую координату
Нашел пару вариантов, оба работают одинаково
Решил сравнить по времени выполнения
Вот сам скрипт:
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](https://habrastorage.org/webt/5b/64/15/5b6415becfe16475581922.png)
Теперь второй вариант дольше...
Я запутался, чему верить?