RxJava itself does not increase performance of an application. In fact, it is overhead as it adds object allocation and method invocations compared with a procedural, imperative approach.
The manner in which RxJava helps achieve improvements is by providing abstractions for concurrency, asynchrony, and callback composition with error handling and flow control – all things that can be done without RxJava, but are difficult and tedious to do without abstractions.
The overhead of RxJava is generally not applicable when composing async IO. It can become an issue when RxJava is used (often overused) in synchronous situations where it is better to use imperative code inside a broader functional composition. As in all things, there is no silver bullet.
Take a look at the following for RxJava related examples:
In short, RxJava alone will not increase performance of your application. Adoption of concurrency and async architectures can (not will), and RxJava provides a programming model for embracing concurrency and asynchrony.
Ben