I need to get execution time in milliseconds.
I originally asked this question back in 2008. The accepted answer then was to use new Date().getTime()
However, we can all agree now that using the standard performance.now()
API is more appropriate. I am therefore changing the accepted answer to this one.
Using performance.now():
var startTime = performance.now()
doSomething() // <---- measured code goes between startTime and endTime
var endTime = performance.now()
console.log(`Call to doSomething took ${endTime - startTime} milliseconds`)
In Node.js
it is required to import the performance
class
importing performance
const { performance } = require('perf_hooks');
Using console.time: (living standard)
console.time('doSomething')
doSomething() // <---- The function you're measuring time for
console.timeEnd('doSomething')
Note:
The string being passed to the time()
and timeEnd()
methods must match
(for the timer to finish as expected).
console.time()
documentations:
- MDN documentation
- Node.js documentation