From aa9b94a80eadde7737417eb7d412559bc567c77c Mon Sep 17 00:00:00 2001 From: Divy Srivastava Date: Fri, 31 Mar 2023 21:28:21 +0530 Subject: perf(ext/websocket): use opAsync2 to avoid spread deopt (#18525) This commit adds a new core API `opAsync2` to call an async op with atmost 2 arguments. Spread argument iterators has a pretty big perf hit when calling ops. | name | avg msg/sec/core | | --- | --- | | 1.32.1 | `127820.750000` | | #18506 | `140079.000000` | | #18506 + #18509 | `150104.250000` | | #18506 + #18509 + this | `157340.000000` | --- core/examples/http_bench_json_ops/http_bench_json_ops.js | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) (limited to 'core/examples/http_bench_json_ops') diff --git a/core/examples/http_bench_json_ops/http_bench_json_ops.js b/core/examples/http_bench_json_ops/http_bench_json_ops.js index 5a205188b..0c3b5be13 100644 --- a/core/examples/http_bench_json_ops/http_bench_json_ops.js +++ b/core/examples/http_bench_json_ops/http_bench_json_ops.js @@ -3,7 +3,7 @@ // then write this fixed 'responseBuf'. The point of this benchmark is to // exercise the event loop in a simple yet semi-realistic way. -const { ops, opAsync } = Deno.core; +const { ops, opAsync, opAsync2 } = Deno.core; const requestBuf = new Uint8Array(64 * 1024); const responseBuf = new Uint8Array( @@ -23,7 +23,7 @@ function accept(serverRid) { } function read(serverRid, buf) { - return opAsync("op_read_socket", serverRid, buf); + return opAsync2("op_read_socket", serverRid, buf); } async function serve(rid) { -- cgit v1.2.3