1
0
Fork 0
mirror of https://github.com/denoland/deno.git synced 2024-11-29 16:30:56 -05:00
denoland-deno/cli/bench/deno_common.js

54 lines
1.2 KiB
JavaScript
Raw Normal View History

// 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://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();