summaryrefslogtreecommitdiff
path: root/cli/bench/async_ops.js
diff options
context:
space:
mode:
authorDivy Srivastava <dj.srivastava23@gmail.com>2022-10-27 06:40:48 -0700
committerGitHub <noreply@github.com>2022-10-27 19:10:48 +0530
commit02187966c108fd50354c8de57bab443a5b262373 (patch)
tree8076ec580cef65797897303a6bb3866f74227bd3 /cli/bench/async_ops.js
parentbfd9912e1faa30a92472252b77878714e668a3d4 (diff)
perf(core): generate inlined wrappers for async ops (#16428)
V8's JIT can do a better job knowing the argument count and also enable fast call path (in future). This also lets us call async ops without `opAsync`: ```js const { ops } = Deno.core; await ops.op_void_async(); ``` this patch: 4405286 ops/sec main: 3508771 ops/sec
Diffstat (limited to 'cli/bench/async_ops.js')
-rw-r--r--cli/bench/async_ops.js5
1 files changed, 3 insertions, 2 deletions
diff --git a/cli/bench/async_ops.js b/cli/bench/async_ops.js
index ac4eb6858..2647accbd 100644
--- a/cli/bench/async_ops.js
+++ b/cli/bench/async_ops.js
@@ -5,7 +5,7 @@ let [total, count] = typeof Deno !== "undefined"
: [process.argv[2], process.argv[3]];
total = total ? parseInt(total, 0) : 50;
-count = count ? parseInt(count, 10) : 100000;
+count = count ? parseInt(count, 10) : 1000000;
async function bench(fun) {
const start = Date.now();
@@ -16,4 +16,5 @@ async function bench(fun) {
if (--total) queueMicrotask(() => bench(fun));
}
-bench(() => Deno.core.opAsync("op_void_async"));
+const { ops } = Deno.core;
+bench(() => ops.op_void_async());