function Deno.bench
bench(b: BenchDefinition): void
Register a benchmark test which will be run when `deno bench` is used on
the command line and the containing module looks like a bench module.
If the test function (`fn`) returns a promise or is async, the test runner
will await resolution to consider the test complete.
```ts
import { assertEquals } from "jsr:@std/assert";
Deno.bench({
name: "example test",
fn() {
assertEquals("world", "world");
},
});
Deno.bench({
name: "example ignored test",
ignore: Deno.build.os === "windows",
fn() {
// This test is ignored only on Windows machines
},
});
Deno.bench({
name: "example async test",
async fn() {
const decoder = new TextDecoder("utf-8");
const data = await Deno.readFile("hello_world.txt");
assertEquals(decoder.decode(data), "Hello world");
}
});
```
void
bench(name: string,fn: (b: BenchContext) => void | Promise<void>,): void
Register a benchmark test which will be run when `deno bench` is used on
the command line and the containing module looks like a bench module.
If the test function (`fn`) returns a promise or is async, the test runner
will await resolution to consider the test complete.
```ts
import { assertEquals } from "jsr:@std/assert";
Deno.bench("My test description", () => {
assertEquals("hello", "hello");
});
Deno.bench("My async test description", async () => {
const decoder = new TextDecoder("utf-8");
const data = await Deno.readFile("hello_world.txt");
assertEquals(decoder.decode(data), "Hello world");
});
```
fn: (b: BenchContext) => void | Promise<void>
void
bench(fn: (b: BenchContext) => void | Promise<void>): void
Register a benchmark test which will be run when `deno bench` is used on
the command line and the containing module looks like a bench module.
If the test function (`fn`) returns a promise or is async, the test runner
will await resolution to consider the test complete.
```ts
import { assertEquals } from "jsr:@std/assert";
Deno.bench(function myTestName() {
assertEquals("hello", "hello");
});
Deno.bench(async function myOtherTestName() {
const decoder = new TextDecoder("utf-8");
const data = await Deno.readFile("hello_world.txt");
assertEquals(decoder.decode(data), "Hello world");
});
```
fn: (b: BenchContext) => void | Promise<void>
void
bench(name: string,options: Omit<BenchDefinition, "fn" | "name">,fn: (b: BenchContext) => void | Promise<void>,): void
Register a benchmark test which will be run when `deno bench` is used on
the command line and the containing module looks like a bench module.
If the test function (`fn`) returns a promise or is async, the test runner
will await resolution to consider the test complete.
```ts
import { assertEquals } from "jsr:@std/assert";
Deno.bench(
"My test description",
{ permissions: { read: true } },
() => {
assertEquals("hello", "hello");
}
);
Deno.bench(
"My async test description",
{ permissions: { read: false } },
async () => {
const decoder = new TextDecoder("utf-8");
const data = await Deno.readFile("hello_world.txt");
assertEquals(decoder.decode(data), "Hello world");
}
);
```
options: Omit<BenchDefinition, "fn" | "name">
fn: (b: BenchContext) => void | Promise<void>
void
bench(options: Omit<BenchDefinition, "fn">,fn: (b: BenchContext) => void | Promise<void>,): void
Register a benchmark test which will be run when `deno bench` is used on
the command line and the containing module looks like a bench module.
If the test function (`fn`) returns a promise or is async, the test runner
will await resolution to consider the test complete.
```ts
import { assertEquals } from "jsr:@std/assert";
Deno.bench(
{ name: "My test description", permissions: { read: true } },
() => {
assertEquals("hello", "hello");
}
);
Deno.bench(
{ name: "My async test description", permissions: { read: false } },
async () => {
const decoder = new TextDecoder("utf-8");
const data = await Deno.readFile("hello_world.txt");
assertEquals(decoder.decode(data), "Hello world");
}
);
```
options: Omit<BenchDefinition, "fn">
fn: (b: BenchContext) => void | Promise<void>
void
bench(options: Omit<BenchDefinition, "fn" | "name">,fn: (b: BenchContext) => void | Promise<void>,): void
Register a benchmark test which will be run when `deno bench` is used on
the command line and the containing module looks like a bench module.
If the test function (`fn`) returns a promise or is async, the test runner
will await resolution to consider the test complete.
```ts
import { assertEquals } from "jsr:@std/assert";
Deno.bench(
{ permissions: { read: true } },
function myTestName() {
assertEquals("hello", "hello");
}
);
Deno.bench(
{ permissions: { read: false } },
async function myOtherTestName() {
const decoder = new TextDecoder("utf-8");
const data = await Deno.readFile("hello_world.txt");
assertEquals(decoder.decode(data), "Hello world");
}
);
```
options: Omit<BenchDefinition, "fn" | "name">
fn: (b: BenchContext) => void | Promise<void>
void