tatami-ng
Cross JavaScript runtime benchmarking library
- API backward compatible with mitata ✔
- Benchmark latency and throughput ✔
- Support for sync and async benchmark ✔
- Advanced benchmark statistics report: significance, error margin, variance,
standard deviation, p-quantiles, ... ✔
- Zero cost abstraction for multiple JS runtime support ✔
- Support for ESM and TypeScript ✔
Install
Node
npmjs
npm install tatami-ng
JSR
npx jsr add @poolifier/tatami-ng
Deno
deno add @poolifier/tatami-ng
Deno versions >= 1.40.x are supported.
The --allow-hrtime
permission flag is recommended to allow high-resolution
time measurement.
Bun
npmjs
bun add tatami-ng
JSR
bunx jsr add @poolifier/tatami-ng
Bun versions >= 1.x are supported.
Browser
<script type="module">
import {
...
} from 'https://cdn.jsdelivr.net/npm/tatami-ng@0.4.16/dist/browser/index.js'
</script>
Example
import { baseline, bench, clear, group, run } from 'tatami-ng';
bench('noop', () => {});
bench('noop2', () => {});
group('group', () => {
baseline('baseline', () => {});
bench('Date.now()', () => {
Date.now();
});
bench('performance.now()', () => {
performance.now();
});
});
group({ name: 'group2', summary: false }, () => {
bench('new Array(0)', () => {
new Array(0);
});
bench('new Array(1024)', () => {
new Array(1024);
});
});
await run({
units: false,
silent: false,
json: false,
file: 'results.json',
colors: true,
samples: 128,
time: 1_000_000_000,
warmup: true,
avg: true,
iter: true,
rmoe: true,
min_max: true,
percentiles: false,
});
clear();
Development
The JavaScript runtime environment used for development is
bun.
License
MIT © Evan,
Jerome Benoit