Files
bun.sh/bench/snippets/callbacks-overhead.mjs
Jarred Sumner 9388b3f825 Add a zig fmt action (#2277)
* Add a zig fmt action

* add failing file

* Setup prettier better

* Update prettier-fmt.yml

* Fail on error

* Update prettier-fmt.yml

* boop

* boop2

* tar.gz

* Update zig-fmt.yml

* Update zig-fmt.yml

* Update zig-fmt.yml

* Update zig-fmt.yml

* Update zig-fmt.yml

* boop

* Update prettier-fmt.yml

* tag

* newlines

* multiline

* fixup

* Update zig-fmt.yml

* update it

* fixup

* both

* w

* Update prettier-fmt.yml

* prettier all the things

* Update package.json

* zig fmt

*  

* bump

* .

* quotes

* fix prettier ignore

* once more

* Update prettier-fmt.yml

* Update fallback.ts

* consistentcy

---------

Co-authored-by: Jarred Sumner <709451+Jarred-Sumner@users.noreply.github.com>
2023-03-02 19:02:10 -08:00

65 lines
1.2 KiB
JavaScript

const iterations = 1_000;
export var report = {
async: 0,
callback: 0,
sync: 0,
then: 0,
};
const tests = {
callback(n, cb) {
if (n === iterations) return cb();
tests.callback(1 + n, () => cb());
},
sync(n) {
if (n === iterations) return;
tests.sync(1 + n);
},
async async(n) {
if (n === iterations) return;
await tests.async(1 + n);
},
then(n) {
if (n === iterations) return;
return Promise.resolve(1 + n).then(tests.then);
},
};
async function test(log) {
{
const a = performance.now();
await tests.async(0);
if (log) console.log(`async/await: ${(report.async = (performance.now() - a).toFixed(4))}ms`);
}
{
const a = performance.now();
tests.callback(0, function () {
if (log) console.log(`callback: ${(report.callback = (performance.now() - a).toFixed(4))}ms`);
});
}
{
const a = performance.now();
await tests.then(0);
if (log) console.log(`then: ${(report.then = (performance.now() - a).toFixed(4))}ms`);
}
{
const a = performance.now();
tests.sync(0);
if (log) console.log(`sync: ${(report.sync = (performance.now() - a).toFixed(4))}ms`);
}
}
let warmup = 10;
while (warmup--) await test();
await test(true);