— Запись доклада на Youtube: https://youtu.be/yjTnuRHtcYw
— Презентация доклада
— Ссылка на примеры микробенчмарков в репозитории JMH
— Репозиторий jmh-crash-course с дополнительными примерами микробенчмарков (из доклада)
— Оригинальная статья (PDF) Дональда Кнута, откуда пошла мода на «Premature optimization is the root of all evil»
— Статья «Java theory and practice: Anatomy of a flawed microbenchmark» от Brian Goetz (Ссылка ведёт на webarchive, потому что IBM сломали все старые статьи)
— Заметка с 8 правилами по написанию микробенчмарков от John Rose
— Статья «Avoiding Benchmarking Pitfalls on the JVM» от Julian Ponge
— Caliper — альтернативный инструмент для написания микробенчмарков на Java, а также пост Алексея Шипилёва, почему не надо его использовать 😅 (ссылка на пост есть прямо в README Caliper)
— Конечно же, блог Алексея Шипилёва — полезно для всех, кто интересуется темой перформанса и внутрянки JVM, в частности статья «Nanotrusting nanotime»
— Запись доклада Алексея Шипилёва «(The Art of) (Java) Benchmarking II»
— Запись доклада Алексея Шипилёва «Java Benchmarking: как два таймстампа прочитать!»
— Гигиенический минимум «6 аннотаций» для вашего микробенчмарка:
@Fork
@Warmup
@BenchmarkMode
@State
@Measurement
@OutputTimeUnit
— Для дальнейшего изучения:
* Статья про чёрную дыру в JMH от Алексея Шипилёва
* jcstress (Java Concurrency Stress) — инструмент для поиска concurrent-ошибок
* JLBH (Java Latency Benchmark Harness) — инструмент для измерения latency в Java-приложениях.
#доклад #видеозаписи #материалы #jmh #best_practice #jvm #java #performance #тестирование