Skip to content

v4.0.0-alpha-20

Latest

Choose a tag to compare

@akarnokd akarnokd released this 21 Jul 15:49
06769f5

What's Changed

Implementation

  • 4.x: Streamable + blockingLast + ignoreElements by @akarnokd in #8231
  • 4.x: Streamable + repeat, repeatWhen, retry, retryWhen by @akarnokd in #8232
  • 4.x: Streamable, improved range and collect internals + JMH by @akarnokd in #8235
  • 4.x: Streamable - optimize several operator internals by @akarnokd in #8238
  • 4.x: Streamable Operator optimizations 7/18 by @akarnokd in #8239
  • 4.x: Streamable mapOptional +perf by @akarnokd in #8240

Dependabot

  • chore(deps): bump jupiterLauncherVersion from 6.1.1 to 6.1.2 by @dependabot[bot] in #8233
  • chore(deps): bump org.junit.jupiter:junit-jupiter from 6.1.1 to 6.1.2 by @dependabot[bot] in #8234
  • chore(deps): bump github/codeql-action/upload-sarif from 4.37.0 to 4.37.1 by @dependabot[bot] in #8236
  • chore(deps): bump actions/setup-java from 5.5.0 to 5.6.0 by @dependabot[bot] in #8237
  • chore(deps): bump actions/setup-python from 6.3.0 to 7.0.0 by @dependabot[bot] in #8241
  • chore(deps): bump actions/checkout from 7.0.0 to 7.0.1 by @dependabot[bot] in #8242

Streamable Scrabble

Ongoing measure/optimization. Managed to shave over half the time off (but some came from using better collector implementations for sure).

💻 i9 275HX, 32GB LPDDR5 6400MT CL52, Windows 25H2, JDK 26.0.1

Step Time (ms) Improvement vs Baseline
Baseline 42,5119 - -
Avoid whenComplete usage in collect 37,566 -11,65% -
IndexableSource in collect 35,815 -4,66% -15,77%
concatIterable optimizations 31,971 -10,73% -24,81%
map fusions 30,623 -4,22% -27,98%
flattenAsFlowable deferred opt 27,999 -8,57% -34,15%
MutableLong in the bench 26,159 -6,57% -38,48%
lastOrError opt 25,164 -3,80% -40,82%
custom Collector summers 24,885 -1,11% -41,47%
skip optimizations 24,791 -0,38% -41,69%
filter opt, filter+map fusion, lastOrError opt 23,566 -4,94% -44,58%
slow path collect optimization 22,392 -4,98% -47,34%
CharStreamer EnumerableSource marker 21,843 -2,45% -48,63%
custom max collector 20,369 -6,75% -52,09%

Versus the other techs

Tech Time in milliseconds
For Loop JDK 26 2,125
IObservable synchronous 7,917
IEnumerable port 8,225
Ix 1.0.0 8,463
RxJava Observable 3.1.12 10,119
RxJava Observable 4a19 ◀️ 10,484
RxJava Observable 2.2.21 10,612
RxJava Flowable 4a19 11,424
RxJava Flowable 3.1.12 12,499
RxJava Flowable 2.2.21 13,849
Reactive4Java 0.98.1 13,086
Guava 33.6.0 12,564
Reactor 3.8.6 14,158
CyclopsReactOpt 17,273
🆕 RxJava Streamable 4a20 ◀️ 20,369
JOOL 0.9.15 38,876
RxJava Streamable 4a19 ◀️ 42,512

Full Changelog: v4.0.0-alpha-19...v4.0.0-alpha-20