mirror of
https://github.com/denoland/deno.git
synced 2024-11-29 16:30:56 -05:00
54 lines
1.2 KiB
JavaScript
54 lines
1.2 KiB
JavaScript
|
// 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();
|