Netflix/RxJava — pull request #1358 by benjchristensen (2014-06-13 06:19:35+00:00)
Title: Backpressure 4

Further progress on top of https://github.com/Netflix/RxJava/pull/1351 that adds object pooling (of ring buffers) and various improvements while looking at performance.

- Next is to redo the merge implementation that I'm not happy with.
- Pivot and parallel operators seem broken (concurrency bugs with `merge` I think).
- Still have performance problems.

```
../gradlew benchmarks '-Pjmh=-f 1 -tu s -bm thrpt -wi 5 -i 5 -r 2 -prof GC rx.usecases.PerfBaseline.*'
```

```
Benchmark (size) Mode Samples Mean Mean error Units
r.u.PerfBaseline.observableConsumption 1 thrpt 5 29341887.334 1377398.290 ops/s
r.u.PerfBaseline.observableConsumption 1024 thrpt 5 235288.206 36803.980 ops/s
r.u.PerfBaseline.observableViaRange 1 thrpt 5 10995116.886 851761.135 ops/s
r.u.PerfBaseline.observableViaRange 1024 thrpt 5 83175.180 2983.626 ops/s
```

vs 0.19:

```
Benchmark (size) Mode Samples Mean Mean error Units
r.u.PerfBaseline.observableConsumption 1 thrpt 5 31394747.471 781746.789 ops/s
r.u.PerfBaseline.observableConsumption 1024 thrpt 5 245864.811 6657.154 ops/s
```