Java programmers love using streams, but what about performance? In this deep dive, you will learn how streams actually work, and when you should worry about suboptimal performance. Through debugging, profiling, benchmarking, and flight recording, we will gain insight into the internals of the stream pipeline. As one example, you will see when it makes a difference for a gatherer to be greedy. Upon completion, you will know which aspects of streams are performance-sensitive, and how to measure your own stream code.

Talk Level:
INTERMEDIATE

Bio:
After growing up in the German countryside, I studied in the United States (M.S. in computer science from Syracuse University, and a Ph.D. in mathematics from the University of Michigan in Ann Arbor). For four years, I was VP and CTO of an Internet startup that went from 3 people in a tiny office to a public company. I taught computer science at San Jose State University and held visiting appointments at universities in Germany, Switzerland, Vietnam, and Macau. In my copious spare time I write books and articles on programming languages and computer science education.