| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
Sorry, something went wrong.
|
Review requested:
|
Sorry, something went wrong.
Codecov Report❌ Patch coverage is 92.48748% with 45 lines in your changes missing coverage. Please review.
@@ Coverage Diff @@
## main #64429 +/- ##
==========================================
- Coverage 90.33% 90.14% -0.19%
==========================================
Files 751 752 +1
Lines 250341 252245 +1904
Branches 47322 47459 +137
==========================================
+ Hits 226145 227389 +1244
- Misses 15575 16191 +616
- Partials 8621 8665 +44
... and 80 files with indirect coverage changes 🚀 New features to boost your workflow:
|
Sorry, something went wrong.
|
I'm seeing #64447, which may change the measured performance of the current implementation. |
Sorry, something went wrong.
|
macbook-stream-operator-throughput-report.pdf |
Sorry, something went wrong.
Signed-off-by: Luciano Leggieri <230980@gmail.com> Assisted-by: Sol 5.6
| Back | FazBrowse Home | New Git URL |
Hi, I'd like to offer an alternative implementation of Readable iteration helpers like find() that don't rely on for await (...) to consume items from the stream. This results in improved performance when the data is already available, such as when creating a Readable from an array, as shown in the attached screenshot (executed on a MacBook M2 Max).
The main con is increased duplication and code complexity. My understanding is that these helpers are still in the experimental phase, which I hope makes a change like this easier to accept.
There are many commits in the branch, but I'll squash them before merging.
Edit: I merged them to fix CI issues
The affected helpers are
Unaffected helpers:
There's also a change to the from() method that increases the buffer watermark when the source is an array of data.
At first, I coded the changes manually, but eventually I had assistance from AI to keep backward compatibility. Still, there's a small break as can be seen in the updated test in test/parallel/test-stream-reduce.js.
The file benchmark/streams/operator-throughput.js allows interested parties to run the benchmarks on their computers or modify them to try other scenarios. I can remove it before merging.