Skip to content

Commit 2f3c0d5

Browse files
Observable.from(T) using Observable.just(T)
For code like `Observable.from(1)` Improve performance from ~3.9m to 4.5+m ops/second Before; ``` r.u.PerfTransforms.flatMapTransformsUsingFrom 1 thrpt 5 3923845.687 46657.660 ops/s r.u.PerfTransforms.flatMapTransformsUsingFrom 1024 thrpt 5 8924.953 1983.161 ops/s r.u.PerfTransforms.flatMapTransformsUsingFrom 1 thrpt 5 3623228.857 490894.492 ops/s r.u.PerfTransforms.flatMapTransformsUsingFrom 1024 thrpt 5 9176.330 923.929 ops/s ``` After: ``` Benchmark (size) Mode Samples Mean Mean error Units r.u.PerfTransforms.flatMapTransformsUsingFrom 1 thrpt 5 4052364.587 100971.234 ops/s r.u.PerfTransforms.flatMapTransformsUsingFrom 1024 thrpt 5 11682.783 496.656 ops/s Benchmark (size) Mode Samples Mean Mean error Units r.u.PerfTransforms.flatMapTransformsUsingFrom 1 thrpt 5 4700583.987 77742.037 ops/s r.u.PerfTransforms.flatMapTransformsUsingFrom 1024 thrpt 5 12588.803 58.935 ops/s ``` Using this test: ``` ../gradlew benchmarks '-Pjmh=-f 1 -tu s -bm thrpt -wi 5 -i 5 -r 5 -prof GC .*PerfTransforms.flatMapTransformsUsingFrom*' ```
1 parent a2f4782 commit 2f3c0d5

File tree

1 file changed

+1
-3
lines changed

1 file changed

+1
-3
lines changed

rxjava-core/src/main/java/rx/Observable.java

Lines changed: 1 addition & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1084,10 +1084,8 @@ public final static <T> Observable<T> from(Iterable<? extends T> iterable, Sched
10841084
* @return an Observable that emits the item
10851085
* @see <a href="https://github.com/Netflix/RxJava/wiki/Creating-Observables#wiki-from">RxJava Wiki: from()</a>
10861086
*/
1087-
// suppress unchecked because we are using varargs inside the method
1088-
@SuppressWarnings("unchecked")
10891087
public final static <T> Observable<T> from(T t1) {
1090-
return from(Arrays.asList(t1));
1088+
return just(t1);
10911089
}
10921090

10931091
/**

0 commit comments

Comments
 (0)