Косяков много. Начиная с того, что код не выполнится, т.к. функция
start()
не определена там, где её вызывают.
Время выполнения можно определить разными способами, но все они похожи по принципу: засекается текущее время перед выполнением, выполняется функция, засекается текущее время после выполнения. Разница между засеченными моментами можно считать примерно равным времени выполнения функции.
Несколько раз – несколько раз засекать-выполнять-засекать-вычетать.
Способы засечь время: - создать новый объект Date, как вы и делаете. Можно писать короче:
var now = new Date().getTime();
- использовать объект Performance и его метод performance.now(), как посоветовал Антон Спирин
- использовать методы объекта console: console.time() и console.timeEnd()
console.time('myFunc1'); // начало отсчёта
myFunction1( arg1, arg2); // измеряемая функция или кусок кода, for(...i < 100000...)
console.timeEnd('myFunc1'); // выведет в консоль время выполнения:
// myFunc1: 118ms