mirror of
https://github.com/denoland/deno.git
synced 2024-11-22 04:51:22 +00:00
Add bench suite of common Deno functions (#9878)
This commit is contained in:
parent
505db5da2c
commit
6c6f3e87c1
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 New Issue
Block a user