Skip to content

Commit

Permalink
Add bench suite of common Deno functions (denoland#9878)
Browse files Browse the repository at this point in the history
  • Loading branch information
AaronO committed Mar 26, 2021
1 parent 505db5d commit 6c6f3e8
Showing 1 changed file with 53 additions and 0 deletions.
53 changes: 53 additions & 0 deletions cli/bench/deno_common.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,53 @@
// Run with: deno run -A ./cli/bench/deno_common.js
function benchSync(name, n, innerLoop) {
const t1 = Date.now();
for (let i = 0; i < n; i++) {
innerLoop(i);
}
const t2 = Date.now();
const dt = (t2 - t1) / 1e3;
const r = n / dt;
console.log(
`${name}:${" ".repeat(20 - name.length)}\t` +
`n = ${n}, dt = ${dt.toFixed(3)}s, r = ${r.toFixed(0)}/s`,
);
}

function benchUrlParse() {
benchSync("url_parse", 5e4, (i) => {
new URL(`http:https://www.google.com/${i}`);
});
}

function benchNow() {
benchSync("now", 5e5, () => {
performance.now();
});
}

function benchWriteNull() {
// Not too large since we want to measure op-overhead not sys IO
const dataChunk = new Uint8Array(100);
const file = Deno.openSync("/dev/null", { write: true });
benchSync("write_null", 5e5, () => {
Deno.writeSync(file.rid, dataChunk);
});
Deno.close(file.rid);
}

function benchReadZero() {
const buf = new Uint8Array(100);
const file = Deno.openSync("/dev/zero");
benchSync("read_zero", 5e5, () => {
Deno.readSync(file.rid, buf);
});
Deno.close(file.rid);
}

function main() {
benchUrlParse();
benchNow();
benchWriteNull();
benchReadZero();
}
main();

0 comments on commit 6c6f3e8

Please sign in to comment.