Shooting the Rapids by Maurice Naftalin/Kirk Pepperdine
For Java programmers, iterating over a collection is the time-honored way of processing data. Now, from Java 8 onwards, we will instead be writing stream programs—more concise, more expressive, and more maintainable. But how fast will they be? To understand the factors that govern stream performance, we need to look at the implementation of their different parts: beginning in a Spliterator, ending in a Collector, and—for parallel streams—processing in the Fork/Join framework. In this talk, we'll use measurements of these different stages to analyse the performance of some practical programs. The result will be guidelines for getting the best performance from Java 8 streams and for predicting when it is worthwhile to go parallel.
November 9, 2015