aboutsummaryrefslogtreecommitdiffstats
path: root/vanilla/node_modules/tinybench/README.md
diff options
context:
space:
mode:
authorAdam Mathes <adam@adammathes.com>2026-02-14 14:46:37 -0800
committerAdam Mathes <adam@adammathes.com>2026-02-14 14:46:37 -0800
commitafa87af01c79a9baa539f2992d32154d2a4739bd (patch)
tree92c7416db734270a2fee1d72ee9cc119379ff8e1 /vanilla/node_modules/tinybench/README.md
parent3b927e84d200402281f68181cd4253bc77e5528d (diff)
downloadneko-afa87af01c79a9baa539f2992d32154d2a4739bd.tar.gz
neko-afa87af01c79a9baa539f2992d32154d2a4739bd.tar.bz2
neko-afa87af01c79a9baa539f2992d32154d2a4739bd.zip
task: delete vanilla js prototype\n\n- Removed vanilla/ directory and web/dist/vanilla directory\n- Updated Makefile, Dockerfile, and CI workflow to remove vanilla references\n- Cleaned up web/web.go to remove vanilla embed and routes\n- Verified build and tests pass\n\nCloses NK-2tcnmq
Diffstat (limited to 'vanilla/node_modules/tinybench/README.md')
-rw-r--r--vanilla/node_modules/tinybench/README.md422
1 files changed, 0 insertions, 422 deletions
diff --git a/vanilla/node_modules/tinybench/README.md b/vanilla/node_modules/tinybench/README.md
deleted file mode 100644
index 0d0c662..0000000
--- a/vanilla/node_modules/tinybench/README.md
+++ /dev/null
@@ -1,422 +0,0 @@
-_I'm transitioning to a full-time open source career. Your support would be greatly appreciated 🙌_
-<a href="https://polar.sh/tinylibs/subscriptions"><picture><source media="(prefers-color-scheme: dark)" srcset="https://polar.sh/embed/tiers.svg?org=tinylibs&darkmode"><img alt="Subscription Tiers on Polar" src="https://polar.sh/embed/tiers.svg?org=tinylibs"></picture></a>
-
-# Tinybench 🔎
-
-[![CI](https://github.com/tinylibs/tinybench/actions/workflows/test.yml/badge.svg?branch=main)](https://github.com/tinylibs/tinybench/actions/workflows/test.yml)
-[![NPM version](https://img.shields.io/npm/v/tinybench.svg?style=flat)](https://www.npmjs.com/package/tinybench)
-
-Benchmark your code easily with Tinybench, a simple, tiny and light-weight `7KB` (`2KB` minified and gzipped)
-benchmarking library!
-You can run your benchmarks in multiple JavaScript runtimes, Tinybench is
-completely based on the Web APIs with proper timing using `process.hrtime` or
-`performance.now`.
-
-- Accurate and precise timing based on the environment
-- `Event` and `EventTarget` compatible events
-- Statistically analyzed values
-- Calculated Percentiles
-- Fully detailed results
-- No dependencies
-
-_In case you need more tiny libraries like tinypool or tinyspy, please consider submitting an [RFC](https://github.com/tinylibs/rfcs)_
-
-## Installing
-
-```bash
-$ npm install -D tinybench
-```
-
-## Usage
-
-You can start benchmarking by instantiating the `Bench` class and adding
-benchmark tasks to it.
-
-```js
-import { Bench } from 'tinybench';
-
-const bench = new Bench({ time: 100 });
-
-bench
- .add('faster task', () => {
- console.log('I am faster')
- })
- .add('slower task', async () => {
- await new Promise(r => setTimeout(r, 1)) // we wait 1ms :)
- console.log('I am slower')
- })
- .todo('unimplemented bench')
-
-await bench.warmup(); // make results more reliable, ref: https://github.com/tinylibs/tinybench/pull/50
-await bench.run();
-
-console.table(bench.table());
-
-// Output:
-// ┌─────────┬───────────────┬──────────┬────────────────────┬───────────┬─────────┐
-// │ (index) │ Task Name │ ops/sec │ Average Time (ns) │ Margin │ Samples │
-// ├─────────┼───────────────┼──────────┼────────────────────┼───────────┼─────────┤
-// │ 0 │ 'faster task' │ '41,621' │ 24025.791819761525 │ '±20.50%' │ 4257 │
-// │ 1 │ 'slower task' │ '828' │ 1207382.7838323202 │ '±7.07%' │ 83 │
-// └─────────┴───────────────┴──────────┴────────────────────┴───────────┴─────────┘
-
-console.table(
- bench.table((task) => ({'Task name': task.name}))
-);
-
-// Output:
-// ┌─────────┬───────────────────────┐
-// │ (index) │ Task name │
-// ├─────────┼───────────────────────┤
-// │ 0 │ 'unimplemented bench' │
-// └─────────┴───────────────────────┘
-```
-
-The `add` method accepts a task name and a task function, so it can benchmark
-it! This method returns a reference to the Bench instance, so it's possible to
-use it to create an another task for that instance.
-
-Note that the task name should always be unique in an instance, because Tinybench stores the tasks based
-on their names in a `Map`.
-
-Also note that `tinybench` does not log any result by default. You can extract the relevant stats
-from `bench.tasks` or any other API after running the benchmark, and process them however you want.
-
-## Docs
-
-### `Bench`
-
-The Benchmark instance for keeping track of the benchmark tasks and controlling
-them.
-
-Options:
-
-```ts
-export type Options = {
- /**
- * time needed for running a benchmark task (milliseconds) @default 500
- */
- time?: number;
-
- /**
- * number of times that a task should run if even the time option is finished @default 10
- */
- iterations?: number;
-
- /**
- * function to get the current timestamp in milliseconds
- */
- now?: () => number;
-
- /**
- * An AbortSignal for aborting the benchmark
- */
- signal?: AbortSignal;
-
- /**
- * Throw if a task fails (events will not work if true)
- */
- throws?: boolean;
-
- /**
- * warmup time (milliseconds) @default 100ms
- */
- warmupTime?: number;
-
- /**
- * warmup iterations @default 5
- */
- warmupIterations?: number;
-
- /**
- * setup function to run before each benchmark task (cycle)
- */
- setup?: Hook;
-
- /**
- * teardown function to run after each benchmark task (cycle)
- */
- teardown?: Hook;
-};
-
-export type Hook = (task: Task, mode: "warmup" | "run") => void | Promise<void>;
-```
-
-- `async run()`: run the added tasks that were registered using the `add` method
-- `async runConcurrently(threshold: number = Infinity, mode: "bench" | "task" = "bench")`: similar to the `run` method but runs concurrently rather than sequentially. See the [Concurrency](#Concurrency) section.
-- `async warmup()`: warm up the benchmark tasks
-- `async warmupConcurrently(threshold: number = Infinity, mode: "bench" | "task" = "bench")`: warm up the benchmark tasks concurrently
-- `reset()`: reset each task and remove its result
-- `add(name: string, fn: Fn, opts?: FnOpts)`: add a benchmark task to the task map
- - `Fn`: `() => any | Promise<any>`
- - `FnOpts`: `{}`: a set of optional functions run during the benchmark lifecycle that can be used to set up or tear down test data or fixtures without affecting the timing of each task
- - `beforeAll?: () => any | Promise<any>`: invoked once before iterations of `fn` begin
- - `beforeEach?: () => any | Promise<any>`: invoked before each time `fn` is executed
- - `afterEach?: () => any | Promise<any>`: invoked after each time `fn` is executed
- - `afterAll?: () => any | Promise<any>`: invoked once after all iterations of `fn` have finished
-- `remove(name: string)`: remove a benchmark task from the task map
-- `table()`: table of the tasks results
-- `get results(): (TaskResult | undefined)[]`: (getter) tasks results as an array
-- `get tasks(): Task[]`: (getter) tasks as an array
-- `getTask(name: string): Task | undefined`: get a task based on the name
-- `todo(name: string, fn?: Fn, opts: FnOptions)`: add a benchmark todo to the todo map
-- `get todos(): Task[]`: (getter) tasks todos as an array
-
-### `Task`
-
-A class that represents each benchmark task in Tinybench. It keeps track of the
-results, name, Bench instance, the task function and the number of times the task
-function has been executed.
-
-- `constructor(bench: Bench, name: string, fn: Fn, opts: FnOptions = {})`
-- `bench: Bench`
-- `name: string`: task name
-- `fn: Fn`: the task function
-- `opts: FnOptions`: Task options
-- `runs: number`: the number of times the task function has been executed
-- `result?: TaskResult`: the result object
-- `async run()`: run the current task and write the results in `Task.result` object
-- `async warmup()`: warm up the current task
-- `setResult(result: Partial<TaskResult>)`: change the result object values
-- `reset()`: reset the task to make the `Task.runs` a zero-value and remove the `Task.result` object
-
-```ts
-export interface FnOptions {
- /**
- * An optional function that is run before iterations of this task begin
- */
- beforeAll?: (this: Task) => void | Promise<void>;
-
- /**
- * An optional function that is run before each iteration of this task
- */
- beforeEach?: (this: Task) => void | Promise<void>;
-
- /**
- * An optional function that is run after each iteration of this task
- */
- afterEach?: (this: Task) => void | Promise<void>;
-
- /**
- * An optional function that is run after all iterations of this task end
- */
- afterAll?: (this: Task) => void | Promise<void>;
-}
-```
-
-## `TaskResult`
-
-the benchmark task result object.
-
-```ts
-export type TaskResult = {
-
- /*
- * the last error that was thrown while running the task
- */
- error?: unknown;
-
- /**
- * The amount of time in milliseconds to run the benchmark task (cycle).
- */
- totalTime: number;
-
- /**
- * the minimum value in the samples
- */
- min: number;
- /**
- * the maximum value in the samples
- */
- max: number;
-
- /**
- * the number of operations per second
- */
- hz: number;
-
- /**
- * how long each operation takes (ms)
- */
- period: number;
-
- /**
- * task samples of each task iteration time (ms)
- */
- samples: number[];
-
- /**
- * samples mean/average (estimate of the population mean)
- */
- mean: number;
-
- /**
- * samples variance (estimate of the population variance)
- */
- variance: number;
-
- /**
- * samples standard deviation (estimate of the population standard deviation)
- */
- sd: number;
-
- /**
- * standard error of the mean (a.k.a. the standard deviation of the sampling distribution of the sample mean)
- */
- sem: number;
-
- /**
- * degrees of freedom
- */
- df: number;
-
- /**
- * critical value of the samples
- */
- critical: number;
-
- /**
- * margin of error
- */
- moe: number;
-
- /**
- * relative margin of error
- */
- rme: number;
-
- /**
- * p75 percentile
- */
- p75: number;
-
- /**
- * p99 percentile
- */
- p99: number;
-
- /**
- * p995 percentile
- */
- p995: number;
-
- /**
- * p999 percentile
- */
- p999: number;
-};
-```
-
-### `Events`
-
-Both the `Task` and `Bench` objects extend the `EventTarget` object, so you can attach listeners to different types of events
-in each class instance using the universal `addEventListener` and
-`removeEventListener`.
-
-```ts
-/**
- * Bench events
- */
-export type BenchEvents =
- | "abort" // when a signal aborts
- | "complete" // when running a benchmark finishes
- | "error" // when the benchmark task throws
- | "reset" // when the reset function gets called
- | "start" // when running the benchmarks gets started
- | "warmup" // when the benchmarks start getting warmed up (before start)
- | "cycle" // when running each benchmark task gets done (cycle)
- | "add" // when a Task gets added to the Bench
- | "remove" // when a Task gets removed of the Bench
- | "todo"; // when a todo Task gets added to the Bench
-
-/**
- * task events
- */
-export type TaskEvents =
- | "abort"
- | "complete"
- | "error"
- | "reset"
- | "start"
- | "warmup"
- | "cycle";
-```
-
-For instance:
-
-```js
-// runs on each benchmark task's cycle
-bench.addEventListener("cycle", (e) => {
- const task = e.task!;
-});
-
-// runs only on this benchmark task's cycle
-task.addEventListener("cycle", (e) => {
- const task = e.task!;
-});
-```
-
-### `BenchEvent`
-
-```ts
-export type BenchEvent = Event & {
- task: Task | null;
-};
-```
-
-### `process.hrtime`
-if you want more accurate results for nodejs with `process.hrtime`, then import
- the `hrtimeNow` function from the library and pass it to the `Bench` options.
-
-```ts
-import { hrtimeNow } from 'tinybench';
-```
-It may make your benchmarks slower, check #42.
-
-## Concurrency
-
-- When `mode` is set to `null` (default), concurrency is disabled.
-- When `mode` is set to 'task', each task's iterations (calls of a task function) run concurrently.
-- When `mode` is set to 'bench', different tasks within the bench run concurrently. Concurrent cycles.
-
-```ts
-// options way (recommended)
-bench.threshold = 10 // The maximum number of concurrent tasks to run. Defaults to Infinity.
-bench.concurrency = "task" // The concurrency mode to determine how tasks are run.
-// await bench.warmup()
-await bench.run()
-
-// standalone method way
-// await bench.warmupConcurrently(10, "task")
-await bench.runConcurrently(10, "task") // with runConcurrently, mode is set to 'bench' by default
-```
-
-## Prior art
-
-- [Benchmark.js](https://github.com/bestiejs/benchmark.js)
-- [Mitata](https://github.com/evanwashere/mitata/)
-- [Bema](https://github.com/prisma-labs/bema)
-
-## Authors
-
-| <a href="https://github.com/Aslemammad"> <img width='150' src="https://avatars.githubusercontent.com/u/37929992?v=4" /><br> Mohammad Bagher </a> |
-| ------------------------------------------------------------------------------------------------------------------------------------------------ |
-
-## Credits
-
-| <a href="https://github.com/uzlopak"> <img width='150' src="https://avatars.githubusercontent.com/u/5059100?v=4" /><br> Uzlopak </a> | <a href="https://github.com/poyoho"> <img width='150' src="https://avatars.githubusercontent.com/u/36070057?v=4" /><br> poyoho </a> |
-| ------------------------------------------------------------------------------------------------------------------------------------ | ----------------------------------------------------------------------------------------------------------------------------------- |
-
-## Contributing
-
-Feel free to create issues/discussions and then PRs for the project!
-
-## Sponsors
-
-Your sponsorship can make a huge difference in continuing our work in open source!
-
-<p align="center">
- <a href="https://cdn.jsdelivr.net/gh/aslemammad/static/sponsors.svg">
- <img src='https://cdn.jsdelivr.net/gh/aslemammad/static/sponsors.svg'/>
- </a>
-</p>