From e4870d84be19f4ea768933522eff437f64963730 Mon Sep 17 00:00:00 2001 From: Divy Srivastava Date: Fri, 7 Jul 2023 22:17:08 +0530 Subject: perf(ext/node): native vectored write for server streams (#19752) ``` # main $ ./load_test 10 0.0.0.0 8080 0 0 Using message size of 20 bytes Running benchmark now... Msg/sec: 106182.250000 Msg/sec: 110279.750000 ^C # this PR $ ./load_test 10 0.0.0.0 8080 0 0 Using message size of 20 bytes Running benchmark now... Msg/sec: 131632.250000 Msg/sec: 134754.250000 ^C ``` --- ext/node/polyfills/internal/stream_base_commons.ts | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) (limited to 'ext/node/polyfills/internal/stream_base_commons.ts') diff --git a/ext/node/polyfills/internal/stream_base_commons.ts b/ext/node/polyfills/internal/stream_base_commons.ts index d7acf729d..01da0c5e3 100644 --- a/ext/node/polyfills/internal/stream_base_commons.ts +++ b/ext/node/polyfills/internal/stream_base_commons.ts @@ -253,7 +253,9 @@ export function onStreamRead( } } else { const offset = streamBaseState[kArrayBufferOffset]; - const buf = Buffer.from(arrayBuffer, offset, nread); + // Performance note: Pass ArrayBuffer to Buffer#from to avoid + // copy. + const buf = Buffer.from(arrayBuffer.buffer, offset, nread); result = stream.push(buf); } -- cgit v1.2.3