На прошлой неделе в Санкт-Петербурге прошла международная Java-конференция Joker. Мы попросили наших ребят, которые её посетили, рассказать немного об организации и самых интересных, по их мнению, выступлениях. Кто-то отметил самые хайповые и весёлые, кто-то — самые актуальные и полезные. Впрочем, читайте об этом «из первых рук».
В этом году было заметно больше посетителей и стендов спонсоров, что привело к незначительным «пробкам» в коридорах, зоне выставки и на обедах.
Доклады, как обычно, проходили в 4 потока плюс 2 мини-потока на демо-стендах в зоне выставки. В этой схеме всегда находился минимум 1 интересный доклад. В перерывах между выступлениями можно было пообщаться с докладчиком в дискуссионной зоне или послушать мини-доклады на демо-стендах.
А теперь о самих докладах и том, зачем вообще ездить на конференции.
Андрей Громов rjhdby,
бэкенд-разработчик FunCorp
Для меня поездка на конференцию — это возможность выйти из повседневного контекста. Взглянуть на знакомые вещи с других точек зрения, а на незнакомые — просто взглянуть. А самый главный стафф, привозимый с конференции — исписанные страницы в блокноте. Не с конспектом докладов, конечно, а с мыслями, возникшими в процессе их прослушивания.
С этой точки зрения Jocker 2019 прошёл для меня под знаком JNI и внутренностей виртуальной машины.
Наибольший интерес вызвали три доклада, не считая Баруха, который и про бухгалтерскую отчётность палатки с шаурмой сможет рассказать так, что не оторвёшься.
- Cliff Click. The Sea of Nodes and the HotSpot JIT
Замечательный доклад про внутреннюю кухню HotSpot C2 JIT от человека, который в этом действительно понимает лучше почти всех.
Вряд ли эти знания скажутся на моей работе, но полстраницы в блокноте пополнились записями с пометками «почитать» и «подход можно применить в XXX», что круто.
- Ionut Balosin. A race of two compilers: GraalVM JIT versus HotSpot JIT C2
Йонутс рассказал о некоторых ключевых различиях в реализации этих двух компиляторов и их влиянии на производительность в определённых типах задач. На первый взгляд кажется, что доклад простенький: ну что там, взял да померил, но это только на первый взгляд, пока не углубишься в детали расказанного и показанного. И вот тогда приходит понимание объёма работы, проделанного докладчиком для того, чтобы показать нам эти «простые графики».
- Дмитрий Писклов. Микросервисы, отвечающие за несколько микросекунд — друзья и враги
Кровь, кишки — всё как я люблю. Этот человек научит вас неправильно делать неправильные, но космически быстрые микросервисы. Подозреваю, что после этого доклада пришлось заменить немало стульев с прогоревшей обивкой.
Тут и про unsafe, и про mmap, и про тюнинг параметров ядра, и про свой сетевой стек, и про всё остальное под девизом «перфоманс во главе угла»!
Евгений Захаров nerumb,
бэкенд-разработчик FunCorp
- Сергей Куксенко. Нужны ли в Java «инлайн»-типы? Узкий взгляд инженера по производительности на проект Valhalla
Интересный доклад от инженера из Oracle, который поделился внутренними подробности работы над Valhalla. У меня были вопросы, почему же так долго Valhalla не приходит в Java, и как раз этот доклад ответил на многие из них.
Value-типы не так просто реализовать в Java, и приходится экономить буквально на единицах «байтов». Сергей рассказал о некоторых ухищрениях, на которые им пришлось пойти, чтобы не изменять структуру хранения объектов в Java и поместить в них всю нужную информацию. И особенно удивительным было то, что Valhalla не только делает Java быстрее, но есть и негативные последствия. C Value-типами приходится усложнять существующий код, и для некоторых ситуаций получается небольшая деградация по производительности (хотя, по словам Сергея, на текущий момент это не более 10% в самых негативных сценариях). Но над этим ещё идёт активная работа и надеемся, что команде Oracle удастся оптимизировать негативные сценарии и наконец воплотить Valhalla в Java.
В качестве бонуса Сергей просил всех неравнодушных попробовать Valhalla (она скоро станет доступна в OpenJDK-сборке при включении флага) и проверить на своих сценариях её работу. Крайне желательно сообщить команде разработке о сильных деградациях по прозводительности, если таковые обнаружатся.
- Тагир Валеев. Java 9-14: Маленькие оптимизации
Как всегда, интересный доклад от не нуждающегося в представлении Тагира. Было много интересного о внутренних улучшениях, которые просто становятся доступны с обновлением на новую версию Java. Тагир привёл много примеров, среди которых наиболее запомнился abs
, который, казалось бы, и оптимизировать уже дальше некуда, т.к. сама реализация метода состояла всего из одной строчки кода. Но и этот метод удалось сделать быстрее сделав его intrinsic
-методом. Было много и других примеров, когда простой переход на следующую версию Java повышает скорость, иногда даже на несколько порядков, как с тем же hypot
. Советую обязательно посмотреть запись доклада, тем кто ещё не видел.
Олег Золотарёв OlegXxl,
бэкенд-разработчик FunCorp
- Juergen Hoeller & Josh Long. Reactive Spring revisited
Джош «отжигал» всё выступление, при этом сам доклад очень хорошо повествует о Reactive буквально во всех его проявлениях в последней версии Spring. В том числе рассказали и про интеграцию с RSocket (а вы знали, что впервые у spring starter в стабильной версии используется нестабильная зависимость?). Конечно, эту информацию можно почерпнуть и из официальных мануалов, но здесь она была из первых уст и в агрегированном виде.
- Барух Садогурский. DevOps для разработчиков (или против них?!)
Барух срывал покровы на закрывающем кейноуте первого дня, и у него получилось достаточно хорошо! Из этого доклада вы узнаете, как и из чего появилась идеология DevOps, кто единственный реализует её «интерфейс». Интересно было послушать про то, что на самом деле есть «лучший код» (его DoD), и о том, что общего у software craftsmanship и DevOps.
К некоторому сожалению, закрывающий кейноут второго дня не был таким «воспламеняющим», как в прошлом году, когда выступал доктор Курпатов, и обсуждение этого выступления в чатах проходило ещё целый месяц.
Впрочем, на конференцию мы ездим не за этим, а по всем остальным параметрам она удалась.
Большое спасибо всем организаторам и докладчикам! До новых встреч на следующих конференциях!
Автор: gayka_m8