До Java-конференции JPoint 2017 осталось пять недель, 75% докладов уже одобрено, оставшиеся 25% будут выбраны из существующих заявок к середине марта.
В этом посте я расскажу вам о том, что мы сделали.
Если темы всех докладов разделить по темам, то получится следующее:
- Производительность Java, как на уровне JVM, так и при работе с фреймворками;
- Вскрытие JVM и публичная демонстрация окровавленных кишок;
- Создание распределенных систем, которые работают;
- Проблемы параллелизма и многопоточности в больших проектах;
- Контейнеризация и оркестровка приложений и сервисов Java.
Производительность и все, что с ней связано
Любимая тема участников JPoint и Joker. Эти отчеты разогревают мозг до тех пор, пока агрегатное состояние не изменится.
В этот раз, как обычно, будет много отчетов о работе.
Алексей Шипилев - Спектакль: Что для тебя от моего имени? Переработанный, обновленный и расширенный отчет Joker 2016 об оптимизации в крупных проектах: общие принципы и взаимосвязи; жизненный цикл проекта и экономика оптимизации; жизненный цикл эталонов; типичные ловушки, в которых попадают инженеры по производительности.
Больше хардкора, больше деталей, больше тайминга, ещё более кривое имя «Ш»!
Сергей Куксенко - История о том, как один инженер HTTP/2 Client разогнал Отчет о том, как Oracle использует (или не использует) методологии оптимизации производительности, о которых много лет говорили в городе.
На примере «JEP 110: HTTP/2 Client» (который в будущем появится в JDK) Сергей покажет, как команда его запускала, куда смотрели и что подправляли, чтобы работать быстрее.
Примечание: отчет не касается HTTP/2. Хотя, конечно, некоторых его деталей не избежать.
Николай Алименков - Давайте снова сделаем Hibernate быстрым Многие разработчики Java используют ORM, но большинство из них не знают о доступных вариантах повышения производительности.
С присущей ему ясностью и практической ориентацией Николай даст обзор этих вариантов на практических примерах.
Доклад от практиков, а не теоретиков.
Саша Гольдштейн, Быстрый и безопасный мониторинг производства JVM-приложений с помощью BPF Magic Саша Гольдштейн, известный гуру производительности в .
NET, на этот раз решил поэкспериментировать и выступить на конференции Java. За последние годы у него накопился большой опыт оптимизации и мониторинга приложений, работающих на JVM, которым он поделится с участниками.
JVM: Давайте заглянем внутрь
Как всегда, нам есть что услышать о внутренностях: все о том, как JVM работает (или будет работать в ближайшем будущем) под капотом и что нужно сделать, чтобы под капотом происходило только то, что вам нужно.
Владимир Иванов — Техники векторизации кода в JVM В этом докладе мы поговорим о том, как сейчас выглядят расширения векторных процессоров и к каким уловкам приходится прибегать JVM, чтобы держать их в режиме ожидания: диспетчеризация ЦП, встроенные функции ВМ, автоматическая векторизация байт-кода в JIT-компиляторах.
Также будет упомянут специализированный векторный API, работа над которым активно ведется в Project Panama.
Алексей Шипилев - Шенандоа: сборщик мусора, который смог Shenandoah — новый сборщик мусора от Red Hat, который пытается решить проблему перемещения объектов без остановки приложения, тем самым еще больше сокращая паузы.
Этот отчет о разработке и реализации Шенандоа, преимуществах, которыми можно гордиться, и недостатках, с которыми придется мириться.
Андрей Пангин, Вадим Цеско — JVM-профайлер с чувством такта В докладе будут обсуждаться различные подходы к профилированию: JVM TI, AsyncGetCallTrace, perf_events и Flame Graphs. Спикеры рассмотрят, как они работают, их преимущества и ограничения, а также найдут способ взять лучшее от каждого из них.
В заключение поговорим о том, как Одноклассники профилируют весь стек от Java-кода до ядра Linux в Production.
Владимир Долженко - Внутри ВМ через хэш-код замочной скважины Отчет о том, что содержит hashCode().
Кажется, все узнают об этом с первых тридцати страниц книги Хорстмана или Блоха, но в ходе интервью постоянно выявляется проблема непонимания работы hashCode().
В своем докладе Владимир расскажет о том, как на самом деле работает механизм hashCode изнутри.
Никита Липский - Проверка байт-кода Java: когда, как и можно ли отключить? Отчет о том, какую миссию имеет верификатор байт-кода в JVM, когда и как он работает, может ли он повлиять на производительность вашего приложения и почему его опасно отключать.
Волкер Симонис — Анализ сбоев HotSpot В этом отчете мы рассмотрим, что можно найти в файлах ошибок, которые создает обработчик сбоев HotSpot, а также как эти файлы могут помочь нам проанализировать и воспроизвести сбой системы.
Кроме того, давайте рассмотрим такие инструменты, как HotSpot Serviceability Agent, которые позволяют заглянуть в собственные файлы ядра и извлечь из них необходимые данные, которые было бы непросто получить с помощью стандартного отладчика.
Чарльз Наттер - Переход на нативный подход: внешние функции в JVM Существует множество библиотек Java, знакомых большинству разработчиков.
Все изменится с появлением Java Native Runtime и Project Panama. Еще, помимо существующих Java-библиотек, существует целый мир нативных библиотек: для графики, криптографии, интеграции с ОС и многого другого.
В этом отчете будут рассмотрены интересные сценарии перехода на нативную версию со сравнением возможностей и обзором инструментов интеграции.
Что еще?
Некоторые участники наших конференций жаловались, что отчёты о производительности и JVM малопригодны в реальной жизни.Поэтому у нас будет много докладов, посвященных прикладным проблемам.
Никита Коваль - Динамический поиск потенциальных тупиков в многопоточных Java-приложениях Взаимоблокировки являются одной из наиболее актуальных проблем при разработке многопоточных приложений.
В этом отчете будет обсуждаться инструмент Dl-Check, используемый для поиска потенциальных взаимоблокировок.
При разработке такого инструмента не обойтись без инструментирования байт-кода, для реализации которого стандартом де-факто является фреймворк ASM. В первой части отчета будет представлен основной алгоритм этого инструмента, позволяющий эффективно находить потенциальные взаимоблокировки во время работы приложения.
Вторая часть доклада будет посвящена инструментированию байт-кода, а также полезным приемам и нетривиальным проблемам, связанным с ним.
Виктор Гамов - Блеск и бедность распределенных потоков Вы один из тех, кто гонится за производительностью, помещая Collection.parallelStream() в любой цикл? Вам интересно, как обойтись без глобального переписывания кода и решить все проблемы с помощью большего количества серверов? Как получить распределенную обработку с линейным ростом производительности? Если в вашей голове крутятся такие вопросы, то этот отчет для вас.
В нем Виктор расскажет обо всех тонкостях распределенной обработки, познакомит слушателей со своим другом — Directed Acyclic Graph — и покажет, как с его помощью можно организовать обработку информации поверх Java 8 Stream API. Распространено! Высокая продуктивность! "В уме"!
Алексей Зиновьев - Кафка льёт, а Спарк загребает! В типичной спецификации для аналитики в реальном времени часто встречаются моменты, что необходимо вычислять «на лету» некоторые агрегированные значения за небольшой промежуток времени, фильтровать поток, снижая нагрузку на последующие этапы вычислений.
Довольно часто мы можем видеть проекты, где команды организуют свое «озеро данных» в Amazon, просто сбрасывая все поступающие события в Kafka. Может ли Spark обрабатывать потоки из Kafka? И если ему это удастся, то какой ценой и что ему в этом поможет? Не ожидайте в отчете введения в Spark, RDD или разговоров о больших данных.
Один случай — одно решение — немного теории — редактировать конфиги — писать код.
Свен Рупперт – глубокое погружение в практический шаблон прокси Мы все читали книгу о шаблонах и знаем о Proxy. Но как его эффективно использовать? Какие типы прокси существуют и как с их помощью можно создавать другие шаблоны? В этом отчете речь пойдет о DynamicProxy, Dynamic/Static-ObjectAdapter, DynamicStaticProxy во время выполнения и многом другом.
Евгений Борисов, Весна – Глубоко и не очень глубоко Работая со Spring, вы наверняка сталкиваетесь с различными проблемами, нюансами и задачами, требующими нестандартного решения.
Этот доклад будет посвящен Spring-Core с обзором последних изменений, представленных в Spring 4.3. Этот отчет поможет вам еще лучше понять, как работает Spring и как лучше и правильнее его использовать.
Как всегда будут кишки, расчлененка, вопросы для зрителей, призы и много живого кодирования.
Милен Дьянков — Микросервисы и модульность или разница между лечением и лечением! Разница между микросервисами и модульностью почти так же размыта, как разница между DI и IoC. В живой демонстрации Милен, консультант разработчиков Java и OSGi компании Liferay, попытается продемонстрировать эту разницу и, с выводами, показать полезные способы разработки приложений.
Евгений Борисов и Кирилл Толкачев - Проклятие весеннего испытания Каждая технология содержит определенный набор подводных камней.
Знать о них и ловко их избегать — задача разработчика, знающего технологию.
Весна не является исключением.
Попробуем разобраться в разных подходах к тестированию на примере приложения Spring Boot, тестируя его шаг за шагом, используя новые возможности и собирая новые грабли.
Давайте поговорим о модульном тестировании, интеграционных тестах, связи Spring MVC и Spring Boot и, конечно же, о трудностях использования Spring 4+.
Тагир Валеев - Инспекции Java в IntelliJ IDEA: что может пойти не так? IntelliJ IDEA постоянно подсвечивает ваш код, предлагая заменить его на что-нибудь получше.
Иногда результаты кажутся просто волшебными.
Как IDE это делает? Как он понимает ваш код, как генерирует новый код взамен старого и какие есть подводные камни? Мы рассмотрим, из чего состоит типичная проверка кода в IntelliJ IDEA и с каким количеством седых волос приходится иметь дело разработчикам IDE, чтобы можно было улучшить свой код одним щелчком мыши.
Арун Гупта — полнофункциональное реактивное Java-приложение с использованием Docker В рамках доклада Арун вместе с аудиторией создаст полностью рабочее приложение на Java EE/Spring с использованием RxJava для асинхронности, Docker для контейнеризации и масштабирования, Couchbase, JavaFX и развертывания с помощью Gluon. Еще один отчет Аруна: Упакуйте свое Java-приложение с помощью Docker и Kubernetes. .
В нем будет рассказано, как запускать и упаковывать приложения Java в Docker, делиться ими в Docker Hub и развертывать их с помощью Maven и Kubernetes.
Иван Пономарев - Скрытая сложность повседневной задачи: Отображение табличных данных Табличный элемент управления (сетка), отображающий данные из реляционной базы данных, является одним из наиболее распространенных компонентов пользовательского интерфейса, и каждый сталкивался с проблемами его производительности и удобства использования.
Доклад покажет, что за кажущейся простотой сетки скрываются интересные и не до конца решенные проблемы, требующие знаний в различных областях математики.
Мы постараемся найти баланс между скоростью и удобством, одновременно научившись интерполировать поиск, разобравшись в том, что такое Правила сортировки, и посмотрим, как мы можем «помочь» базе данных быстро получить нужные нам данные.
На десерт – пазлы и холивары!
В заключительной части поста хочу поделиться «десертными» отчетами: вы вряд ли узнаете из них что-то новое о платформе или получите какие-то готовые решения для внедрения в производство, но после них вы уйдете с отличное настроение и бодрый дух:Антон Кекс — Kotlin Puzzlers Kotlin — хороший альтернативный язык для JVM, который пытается улучшить процесс кодирования по сравнению с Java. Хотя он уже не нов, после выхода версии 1.0 в 2016 году его использование начало резко возрастать.
Антон сделает небольшое вступление и сразу перейдет к головоломкам — коротким программам на Котлине, которые делают не совсем то, чем кажутся на первый взгляд. Несмотря на то, что Kotlin разрабатывался более 6 лет и даже специально старался избегать самых известных Java-головоломок, у него все равно были свои особенности и нюансы, которые невозможно найти в документации.
Тагир Валеев, Барух Садогурский - Java Puzzles NG S02: Всё чудеснее и чудеснее Больше, больше головоломок! Чем больше опыта получает индустрия с Java 8, тем чудеснее и чудеснее она нам кажется.
Такое ощущение, что все эти потоки, лямбды, монады,Options и CompletableFutures туда напихали исключительно для того, чтобы нас запутать! А Java 9, едва маячив на горизонте, уже сияет и переливается красивыми загадками и загадками.
В этом сезоне головоломок, как всегда, у нас чудесный набор странностей, забавных (по крайней мере со стороны ведущих) шуток.
Алексей Савватеев - Коллективная ответственность Представьте себе, что вы полицейский, дежурящий в турникетном зале.
Безбилетники они пытаются перепрыгнуть турникеты, вы их ловите.
Вы один, их много.
Можно ли дать им такие «правила игры», чтобы они не смели пытаться перепрыгнуть, даже если заранее известно, что вы в любом случае поймаете только одного из них? Оказывается, это возможно.
Отчет о математических и теоретико-игровых основах изобретения различных оригинальных алгоритмов управления.
Этот отчет не даст вам академического образования; вы не научитесь писать более эффективные алгоритмы.
Однако вы получите представление о том, насколько богат математический аппарат.
Если вам интересна тема теории игр, если вам интересно узнать об исследованиях, за которые Нобелевский комитет по экономике уже несколько раз присуждался, то добро пожаловать на доклад.
Егор Бугаенко - Аннотации в Java — ошибка Для любителей игр очередной вызов Java-сообществу от Егора Бугаенко! Как известно, аннотации появились в Java 5 и привели к серьёзному упрощению многих библиотек, а также к появлению новых.
Всем понравилась идея уменьшения размера кода за счет использования аннотаций и возможности устранения сложных файлов конфигурации XML в Hibernate и Spring. Одно время Егор тоже был большим любителем аннотаций.
Однако все изменилось, и сегодня он категорически против этого и считает, что аннотации — это большой недостаток в дизайне Java. Почему? Об этом и будет доклад.
Барух Садогурский - «Компьютер, как поживает мой кластерЭ» и другие магические заклинания Как вы все прекрасно знаете, инженеры ленивы.
Иногда мы можем провести месяц бессонных ночей, чтобы потом не пришлось нажимать несколько кнопок.
Специально для нас (на самом деле нет) Amazon придумал замечательный сервис голосовых команд Alexa, с помощью которого мы можем, откинувшись в кресле с рюмкой коньяка/кофе/самогона (нужное подчеркнуть), управлять, и возможно, что угодно.
В этом докладе я покажу вам пример приложения, которое добавляет голосовой интерфейс к совершенно неожиданным вещам вроде IntelliJ IDEA и Jenkins, и гораздо менее чем за месяц ночей вы сможете прикрепить его к чему угодно.
Уф, похоже, я не пропустил ничего анонсированного на сегодня.
В общем, действительно будет много интересного, и если вы пишете на Java, мы будем рады видеть вас на JPoint. Было бы полезно напомнить, что помимо докладов на конференции пройдут мероприятия области обсуждения : после каждого доклада спикер и все желающие задать ему вопросы будут отбуксирован в специальную зону , где у участников будет возможность пообщаться со спикером еще полтора часа – до окончания следующего слота презентации.
В целом мы в очередной раз проделали хорошую работу.
Если вы заинтересованы в участии, проверьте это сайт конференции .
Есть предварительное расписание, подробности докладов и ссылки на материалы прошлых лет. Всем Явы, хабровцы! Теги: #Высокая производительность #Конференции #java #отчеты #jvm #производительность #jpoint #hardcore
-
Ленц, Эмилий Христианович
19 Oct, 24 -
Комментарии Против Ajax
19 Oct, 24 -
Опера На Icamp-2008. Полученные Результаты.
19 Oct, 24 -
Sourceforge Изменил Свой Дизайн
19 Oct, 24 -
Квартира Для Веб-Разработчика
19 Oct, 24