Как многократно вычислять время выполнения функции?
Косяков много. Начиная с того, что код не выполнится, т.к. функция 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
Как однократно вычислить время выполнения функции:var t0 = performance.now();
doSomething();
var t1 = performance.now();
console.log("Call to doSomething took " + (t1 - t0) + " milliseconds.");
Как это сделать многократно:var t0, t1;
var results = [];

for (var i = 0; i < nTimes; i++) {
  t0 = performance.now();
  doSomething();
  t1 = performance.now();
  results.push(t1 - t0);
}

// если надо вывести результат
results.forEach(function(result, i) {
  console.log('Call to doSomething #' + (i + 1) + ' took ' + result + ' milliseconds.');
});
где doSomething - функция,nTimes - количество итераций