mirror of
https://github.com/denoland/deno.git
synced 2024-12-22 07:14:47 -05:00
Add bench suite of common Deno functions (#9878)
This commit is contained in:
parent
505db5da2c
commit
6c6f3e87c1
1 changed files with 53 additions and 0 deletions
53
cli/bench/deno_common.js
Normal file
53
cli/bench/deno_common.js
Normal file
|
@ -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://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();
|
Loading…
Reference in a new issue