mirror of
https://github.com/denoland/deno.git
synced 2025-09-28 13:14:48 +00:00
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` |
This commit is contained in:
parent
feab94ff51
commit
aa9b94a80e
8 changed files with 31 additions and 18 deletions
|
@ -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) {
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue