jokerconf Joker 2015 (16.10.2015 — 17.10.2015)

Что же мы измеряем?

img

How to avoid some common mistakes when writing benchmarks, how to use diagnostic JVM options and how to understand how JVM executes your code.

Stream API, которое появилось в Java 8, — это модно, красиво, функционально и современно. Но насколько оно проигрывает в скорости традиционным циклам? Какова цена удобства?

В этом докладе мы начнём маленькое путешествие с маленького и наивного бенчмарка, придуманного для оценки скорости Stream API, затем проберёмся через дебри JIT-компиляции в HotSpot JVM, заглянем в омут инлайнинга и посмотрим, какова его глубина и можно ли в нём утонуть.

Мы увидим, что даже хороший инструмент для оценки производительности необязательно поможет нам измерить то, что действительно хочется, а одинаковые внешне бенчмарки могут измерять производительность совершенно разного кода.

Полученные знания помогут вам избегать некоторых ошибок при написании бенчмарков, использовать и интерпретировать диагностические опции HotSpot JVM и лучше понять, как исполняется ваш код.