vigour-performance

performance test suite

Usage no npm install needed!

<script type="module">
  import vigourPerformance from 'https://cdn.skypack.dev/vigour-performance';
</script>

README

performance

Build Status js-standard-style npm version

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 = require('vigour-performance').time
var startTime = time()
var elapsedTime = time(startTime)

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 = require('vigour-performance').run
run(
  () => {
    // function to measure (subject)
  },
  (average, iterations) => {
    // callback
    // average : subject function average run time in milliseconds,
    // iterations : number of times the subject function was executed
    // )
  },
  100 // number of times to execute the subject function
)

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 to reference 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 = require('vigour-performance')
// The following test will pass if `subject` executes at least 2 times as fast as `reference`
perf(function subject () {}, function reference () {}, 2)