Stream API, которое появилось в Java 8, — это модно, красиво, функционально и современно. Но насколько оно проигрывает в скорости традиционным циклам? Какова цена удобства?
В этом докладе мы начнём маленькое путешествие с маленького и наивного бенчмарка, придуманного для оценки скорости Stream API, затем проберёмся через дебри JIT-компиляции в HotSpot JVM, заглянем в омут инлайнинга и посмотрим, какова его глубина и можно ли в нём утонуть.
Мы увидим, что даже хороший инструмент для оценки производительности необязательно поможет нам измерить то, что действительно хочется, а одинаковые внешне бенчмарки могут измерять производительность совершенно разного кода.
Полученные знания помогут вам избегать некоторых ошибок при написании бенчмарков, использовать и интерпретировать диагностические опции HotSpot JVM и лучше понять, как исполняется ваш код.
Разрабатываю и поддерживаю системы автоматизации научных исследований в области генетики, молекулярной и системной биологии.
Участвую в проекте статического анализа кода FindBugs. Разрабатываю открытую библиотеку StreamEx, расширяющую возможности
Java 8 Stream API.
Известен на хабре как lany.