summaryrefslogtreecommitdiff
path: root/core/examples/http_bench_bin_ops.js
diff options
context:
space:
mode:
authorAaron O'Mullan <aaron.omullan@gmail.com>2021-03-31 16:37:38 +0200
committerGitHub <noreply@github.com>2021-03-31 10:37:38 -0400
commitfec1b2a5a4324a7eecdfbb2471931f3b6b0139c5 (patch)
tree8a650553c2d70e047d9d7365f9ac8702ec9861a5 /core/examples/http_bench_bin_ops.js
parent6dc3549a818ad49b3907d18c93fd422a9cc743a5 (diff)
refactor: new optimized op-layer using serde_v8 (#9843)
- Improves op performance. - Handle op-metadata (errors, promise IDs) explicitly in the op-layer vs per op-encoding (aka: out-of-payload). - Remove shared queue & custom "asyncHandlers", all async values are returned in batches via js_recv_cb. - The op-layer should be thought of as simple function calls with little indirection or translation besides the conceptually straightforward serde_v8 bijections. - Preserve concepts of json/bin/min as semantic groups of their inputs/outputs instead of their op-encoding strategy, preserving these groups will also facilitate partial transitions over to v8 Fast API for the "min" and "bin" groups
Diffstat (limited to 'core/examples/http_bench_bin_ops.js')
-rw-r--r--core/examples/http_bench_bin_ops.js11
1 files changed, 8 insertions, 3 deletions
diff --git a/core/examples/http_bench_bin_ops.js b/core/examples/http_bench_bin_ops.js
index 18f98419f..cf5e275b1 100644
--- a/core/examples/http_bench_bin_ops.js
+++ b/core/examples/http_bench_bin_ops.js
@@ -9,14 +9,19 @@ const responseBuf = new Uint8Array(
.map((c) => c.charCodeAt(0)),
);
+// This buffer exists purely to avoid trigerring the bin-op buf assert
+// in practice all deno bin ops accept buffers, this bench is an exception
+// TODO(@AaronO): remove once we drop variadic BufVec compat
+const nopBuffer = new Uint8Array();
+
/** Listens on 0.0.0.0:4500, returns rid. */
function listen() {
- return Deno.core.binOpSync("listen");
+ return Deno.core.binOpSync("listen", 0, nopBuffer);
}
/** Accepts a connection, returns rid. */
function accept(rid) {
- return Deno.core.binOpAsync("accept", rid);
+ return Deno.core.binOpAsync("accept", rid, nopBuffer);
}
/**
@@ -33,7 +38,7 @@ function write(rid, data) {
}
function close(rid) {
- Deno.core.binOpSync("close", rid);
+ Deno.core.binOpSync("close", rid, nopBuffer);
}
async function serve(rid) {