Package Exports
- @codspeed/tinybench-plugin
- @codspeed/tinybench-plugin/dist/index.cjs.js
- @codspeed/tinybench-plugin/dist/index.es5.js
This package does not declare an exports field, so the exports above have been automatically detected and optimized by JSPM instead. If any package subpath is missing, it is recommended to post an issue to the original package (@codspeed/tinybench-plugin) to support the "exports" field. If that is not possible, create a JSPM override to customize the exports field for this package.
Readme
Documentation
Check out the documentation for complete integration instructions.
Installation
First, install the plugin @codspeed/tinybench-plugin and tinybench (if not already installed):
npm install --save-dev @codspeed/tinybench-plugin tinybenchor with yarn:
yarn add --dev @codspeed/tinybench-plugin tinybenchor with pnpm:
pnpm add --save-dev @codspeed/tinybench-plugin tinybenchUsage
Let's create a fibonacci function and benchmark it with tinybench and the CodSpeed plugin:
import { Bench } from "tinybench";
import { withCodSpeed } from "@codspeed/tinybench-plugin";
function fibonacci(n) {
if (n < 2) {
return n;
}
return fibonacci(n - 1) + fibonacci(n - 2);
}
const bench = withCodSpeed(new Bench());
bench
.add("fibonacci10", () => {
fibonacci(10);
})
.add("fibonacci15", () => {
fibonacci(15);
});
await bench.run();
console.table(bench.table());Here, a few things are happening:
We create a simple recursive fibonacci function.
We create a new
Benchinstance with CodSpeed support by using thewithCodSpeedhelper. This step is critical to enable CodSpeed on your benchmarks.We add two benchmarks to the suite and launch it, benching our
fibonaccifunction for 10 and 15.
Now, we can run our benchmarks locally to make sure everything is working as expected:
$ node benches/bench.mjs
[CodSpeed] 2 benches detected but no instrumentation found
[CodSpeed] falling back to tinybench
┌─────────┬───────────────┬─────────────┬───────────────────┬──────────┬─────────┐
│ (index) │ Task Name │ ops/sec │ Average Time (ns) │ Margin │ Samples │
├─────────┼───────────────┼─────────────┼───────────────────┼──────────┼─────────┤
│ 0 │ 'fibonacci10' │ '1,810,236' │ 552.4139857896414 │ '±0.18%' │ 905119 │
│ 1 │ 'fibonacci15' │ '177,516' │ 5633.276191749634 │ '±0.14%' │ 88759 │
└─────────┴───────────────┴─────────────┴───────────────────┴──────────┴─────────┘And... Congrats🎉, CodSpeed is installed in your benchmarking suite! Locally, CodSpeed will fallback to tinybench since the instrumentation is only available in the CI environment for now.
You can now run those benchmarks in your CI to continuously get consistent performance measurements.