Overview
Explore the performance factors of Java 8 streams in this comprehensive conference talk. Dive into the implementation details of stream processing, from Spliterators to Collectors and the Fork/Join framework for parallel streams. Analyze practical program measurements to develop guidelines for optimizing Java 8 stream performance and determining when parallel processing is beneficial. Learn about lambda expressions, method references, and terminal operations while examining real-world examples like processing GC logfiles. Compare old-school code with modern Java 8 streams, investigate data splitting techniques, and understand the impact of intermediate operations. Gain insights into amortizing setup costs, simulating server environments, and addressing resource bottlenecks in stream processing.
Syllabus
Intro
Benchmark Alert
What is a Lambda?
Example: Processing GC Logfile
20 Old School Code
Java 8 Streams
Method References
20 Terminal Operation
Splitting the Data
How Does That Perform?
Open Questions
LineSpliterator
In-memory Comparison
Amortizing Setup Costs
Simulated Server Environment
Intermediate Operation Bottleneck
Tragedy of the Commons
Resources
Taught by
Devoxx