From 8a8653ddb6173dc2ea20d692eaa3e194c41c283d Mon Sep 17 00:00:00 2001 From: ri7116 Date: Fri, 8 Aug 2025 21:41:48 +0900 Subject: [PATCH] lib: optimize writable stream buffer clearing Improved the `clearBuffer` function by replacing `buffered.splice` with `ArrayPrototypeSlice`. - Eliminates O(N) shifting overhead. - Improves CPU utilization and reduces GC overhead. --- lib/internal/streams/writable.js | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/lib/internal/streams/writable.js b/lib/internal/streams/writable.js index 1081db9ffcf661..67beef44142d44 100644 --- a/lib/internal/streams/writable.js +++ b/lib/internal/streams/writable.js @@ -784,7 +784,7 @@ function clearBuffer(stream, state) { if (i === buffered.length) { resetBuffer(state); } else if (i > 256) { - buffered.splice(0, i); + state[kBufferedValue] = ArrayPrototypeSlice(buffered, i); state.bufferedIndex = 0; } else { state.bufferedIndex = i;