'use strict'
const { workerData: benchmark, parentPort } = require('worker_threads')
const Benchmark = require('benchmark')
// The default number of samples for Benchmark seems to be low enough that it
// can generate results with significant variance (~2%) for this benchmark
// suite. This makes it sometimes a bit confusing to actually evaluate impact of
// changes on performance. Setting the minimum of samples to 500 results in
// significantly lower variance on my local setup for this tests suite, and
// gives me higher confidence in benchmark results.
Benchmark.options.minSamples = 500
const suite = Benchmark.Suite()
const FindMyWay = require('..')
const findMyWay = new FindMyWay()
for (const { method, url, opts } of benchmark.setupURLs) {
if (opts !== undefined) {
findMyWay.on(method, url, opts, () => true)
} else {
findMyWay.on(method, url, () => true)
}
}
suite
.add(benchmark.name, () => {
findMyWay.lookup(...benchmark.arguments)
})
.on('cycle', (event) => {
parentPort.postMessage(String(event.target))
})
.on('complete', () => {})
.run()