Beginner
cli
Benchmarking
When writing libraries, a very common task that needs to be done is testing the speed of methods, usually against other libraries. Deno provides an easy-to-use subcommand for this purpose.
The most basic form of deno benchmarking is providing a name and an anonymous function to run.
!--frsh-copybutton:1-->
Deno.bench("URL parsing", () => {
new URL("https://deno.land");
});
We are also able to use an async function.
!--frsh-copybutton:2-->
Deno.bench("Async method", async () => {
await crypto.subtle.digest("SHA-256", new Uint8Array([1, 2, 3]));
});
We can optionally use long form bench definitions.
!--frsh-copybutton:3-->
Deno.bench({
name: "Long form",
fn: () => {
new URL("https://deno.land");
},
});
We are also able to group certain benchmarks together using the optional group and baseline arguments.
!--frsh-copybutton:4-->
Deno.bench({
name: "Date.now()",
group: "timing",
baseline: true,
fn: () => {
Date.now();
},
});
Deno.bench({
name: "performance.now()",
group: "timing",
fn: () => {
performance.now();
},
});
Run this example locally using the Deno CLI:
deno bench https://byexample-wwv03xf36j0g.deno.dev/benchmarking.ts
Additional resources: