4.x: Streamable Operator optimizations 7/18#8239
Conversation
🐷 TruffleHog + Entropy Beauty ScanAverage entropy of changed code: 4.627 bits/char Changed files entropy: ✅ No secrets or suspicious high-entropy strings found. Mid-4 beauty heuristic in action — powered by our entropy chats! 😊 |
🐷 TruffleHog + Entropy Beauty ScanAverage entropy of changed code: 4.627 bits/char Changed files entropy: ✅ No secrets or suspicious high-entropy strings found. Mid-4 beauty heuristic in action — powered by our entropy chats! 😊 |
Codecov Report❌ Patch coverage is ❌ Your patch check has failed because the patch coverage (89.03%) is below the target coverage (95.00%). You can increase the patch coverage or adjust the target coverage. Additional details and impacted files@@ Coverage Diff @@
## 4.x #8239 +/- ##
============================================
- Coverage 98.63% 98.59% -0.04%
- Complexity 7152 7154 +2
============================================
Files 822 822
Lines 50543 50625 +82
Branches 6862 6879 +17
============================================
+ Hits 49852 49914 +62
- Misses 475 481 +6
- Partials 216 230 +14 ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
Methodology
With help from Claude Fable, a new state machine has been implemented for several looping-consuming operators where it is by default synchronous bias and no need for a trampoline because there is only two phase of the async coordination: drain still running vs async completion running.
Plus more sources implement
IndexableSourceandEnumerableSourcesometimes both because some chains may not work with indexable, such as map+filter+collect. Also if an operator is Indexable, it will be also enumerable.Operators affected
collectlast,lastOrErrorfilterjustemptyScrabble status
https://github.com/akarnokd/akarnokd-misc/blob/master/src/jmh/java/hu/akarnokd/comparison/scrabble/ShakespearePlaysScrabbleWithRxJava4StreamableOpt.java
New measurements below the ~~~~~~~ markers.
whenCompleteusage incollectcollectCollectorsummers