Алексей Шипилёв - Java Benchmarking: как два таймстампа прочитать!

  Рет қаралды 11,399

JPoint, Joker и JUG ru

JPoint, Joker и JUG ru

9 жыл бұрын

Ближайшая конференция - Joker 2024, 9 октября (Online), 15-16 октября (Санкт-Петербург + трансляция).
Подробности и билеты: jrg.su/Ypf1HW
- -
. . . . Алексей Шипилёв - Java Benchmarking: как два таймстампа прочитать!
Java-конференция Joker 2014
Санкт-Петербург, 20 - 21 октября 2014
Померить производительность - это так просто! Два раза по System.nanoTime(), взяли разность, сложили-поделили, и всё, можно оптимизировать. Как бы не так!
В этом докладе мы поговорим о том, как исследуют производительность приложений при помощи бенчмарков, какие частые ошибки возникают, как с ними бороться, и как вообще получить хоть какие-то полезные данные о мире, где всё от всего зависит. Красной нитью в докладе проходит Java Microbenchmark Harness (JMH), стандартный инструмент для написания и исследования бенчмарков в OpenJDK.

Пікірлер: 4
@bademusl
@bademusl 9 жыл бұрын
Шеф, забацай RSS на shipilev.net, а то гугль находит только обещания. Хотелось бы под feedly.com подцепить
@user-on9rp9jj2d
@user-on9rp9jj2d 5 жыл бұрын
Ахах) Первое что в голову пришло ответить - "это Java хреново а не Node.js хорошо" ))
@Alexander-mj3jk
@Alexander-mj3jk 9 жыл бұрын
Насчет того, что он говорит на 45 минуте. Мол, проблема в бенчмаркинге, и мы щас умышленно _затормозим_ жаву подсунув ей рандом на вход, и покажем, что ее немножко обгоняет скала. Кто ему дал право тормозить жаву? Кто дал право подсовывать другие входящие параметры? Скале же на вход приходит тоже константа времени компиляции, а не рандом! Так что, пускай разгоняет скалу, а не тормозит жаву!!! То, что жава увидела константу времени компиляции, а скала не увидела - это показательный момент, который мы не можем проигнорировать! Поэтому, ясное дело, что влияние этого фактора должно быть отражено в тестах. Лично я его тест интерпретировал так: скала не всегда видит то, что можно заоптимайзить, поэтому в среднем работает медленней.
@alexeiosipov6304
@alexeiosipov6304 6 жыл бұрын
> Кто дал право подсовывать другие входящие параметры А как еще выполнять проверку гипотез? Только изменяя эксперимент и пробуя другие параметры. И докладчик не говорит что проблема в бенчмаркинге. А в том, что нельзя просто остановиться и сказать, "на нашем тесте Java быстрее, так как на бенчмарке циферка выше". Исходная цель того бенчмарка - оценить производительность метода в нормальных условиях (со произвольными входными данными), а не тогда, когда там константа передается. Именно в том польза от анализа результатов, что удалось выяснить, что наличие константы в этом тесте помогает Java, но не помогает Scala. Речь в докладе идет именно о пользе такого анализа. А кто там быстрее, Java или Scala, это вообще не относится к теме докалада.
Алексей Шипилёв - Bulletproof Java Concurrency
47:52
JPoint, Joker и JUG ru
Рет қаралды 15 М.
Никита Липский - Ahead-of-time компиляция
1:10:55
JPoint, Joker и JUG ru
Рет қаралды 2,4 М.
DO YOU HAVE FRIENDS LIKE THIS?
00:17
dednahype
Рет қаралды 73 МЛН
Дибала против вратаря Легенды
00:33
Mr. Oleynik
Рет қаралды 4,8 МЛН
Benchmarking for Good with Aleksey Shipilev
51:14
Java
Рет қаралды 2,6 М.
Алексей Шипилёв - Катехизис java.lang.String
55:29
JPoint, Joker и JUG ru
Рет қаралды 55 М.
Введение в корутины Kotlin (Kotlin Coroutines)
1:05:21
Рустам Курамшин
Рет қаралды 8 М.
C++ Siberia 2019: Антон Полухин, C++ на практике
54:26
Алексей Шипилёв - The Lord of the Strings: Two Scours
54:10
JPoint, Joker и JUG ru
Рет қаралды 11 М.
Алексей Шипилёв - OpenJDK Frameworks: jmh & jcstress
27:54
JPoint, Joker и JUG ru
Рет қаралды 8 М.
ИГРОВОВЫЙ НОУТ ASUS ЗА 57 тысяч
25:33
Ремонтяш
Рет қаралды 335 М.
ОБСЛУЖИЛИ САМЫЙ ГРЯЗНЫЙ ПК
1:00
VA-PC
Рет қаралды 687 М.