performance
Simple performance benchmarking tools (browser and node)
Precise time measurement
var t = time(startTime)
When called without arguments, returns the current time as precisely as possible as a number of milliseconds or an array ([milliseconds, microseconds]
)
When called with an argument, returns the difference between the current time and the time passed in as argument, in milliseconds
- startTime (number|array) - start time for elapsed time calculation
- returns (number|array) t - Current time (in milliseconds) or elapsed time since
startTime
var time = timevar startTime = var elapsedTime =
Measuring a function's performance
run(subject, callback, nbIterations)
- subject (function) - the function to measure
- callback (function) - called when the measurement is done :
callback(averageRunTime, nbIterations)
- nbIterations (number) - number of times to execute the subject function
var run = run
Comparing functions
perf(subject, reference, margin, loop, subjectLabel, referenceLabel)
- subject (function) - function to measure
- reference (function) - function to compare with
subject
- margin (number) - number of times faster
subject
must be compared toreference
for the test to pass - loop (number) - Number of times to run the functions (default:
10
) - subjectLabel (string) - Label for the subject function (default: the name of the function (
subject.name
)) - referenceLabel (string) - Label for the reference function (default: the name of the function (
reference.name
))
Uses tape internally, which produces TAP(Test Anything Protocol) output.
var perf = // The following test will pass if `subject` executes at least 2 times as fast as `reference`