В пятницу, 5 апреля, в Петербурге пройдёт международная конференция по Java-технологиям JPoint. Конференция ориентирована на Senior Java-разработчиков. В программе — доклады от ведущих зарубежных и отечественных специалистов, представляющих компании Azul Systems, Яндекс, Deutsche Bank, JetBrains, Luxoft, Codeborne, Одноклассники и Oracle.
Список докладов
What's New in Java 8
Java 8 will ship with more than 50 new features. Some of the new features will provide big performance gains, others will radically change the way we write Java programs. This talk will survey the most prominent features of the changed landscape of Java development — after 8.
Closures and Collections - the World After Eight
The introduction of closures will bring new idioms to Java programming. Collections in particular will be managed very differently, with stream-oriented processing and lazy evaluation becoming the norm for many applications. Collections connected by these streams will offer new «parallel views» — implementations that will make optimal use of highly-concurrent hardware. It's going to be a different world after Java 8!
Maurice Naftalin |
Java Runtime: повседневные обязанности виртуальной машины Java
Что делает JVM? Компилирует код и выполняет сборку мусора, — скажете вы и будете совершенно правы. Тем не менее, Java приложения могут работать даже при полном отсутсвии JIT и GC.
Виртуальная машина состоит из большого числа компонентов, благодаря которым исполнение Java программ становится возможным. Из доклада вы узнаете, что представляет собой байткод, где лежат переменные, что содержится в class-файлах, кто ловит исключения, насколько дороги JNI методы, как работает синхронизация и многое другое.
Андрей Паньгин, Ведущий инженер проекта «Одноклассники» компании Mail.Ru Group. C 2011 года занимается программной платформой, лежащей в основе сервисов портала. До этого 6 лет работал в Sun Microsystems, разрабатывая виртуальные машины Java, от CLDC HI до HotSpot JVM. Интересуется низкоуровневым системным программированием. Увлекается покером. Катается на северных ездовых собаках. |
Quantum Performance Effects
Попытка рассмотреть с точки зрения Java Performance следующие вопросы:
- Должен ли Java разработчик знать, как устроены современные процессоры?
- Защищены ли Java разработчики от утекания микроархитектурных проблем на высокий уровень?
- Как не удивляться тому, что две почти одинаковые программы на Java могут работают с разной на порядки скоростью?
Сергей Куксенко, Закончил Новосибирский Государственный Университет. Более 15 лет профессионального опыта, включая Российскую Академию Наук, стартапы, а также такие крупные корпорации как Intel и Oracle. Опыт работы с Java более 14 лет, начиная с разнообразных клиентских и серверных приложений и заканчивая classlib и JIT-компиляторами. Последние 6 лет Сергей занимается вопросами производительности Java, включая classlib, VM, GC, JIT и другие аспекты. |
Модель памяти Java: близкие контакты третьей степени
Последние несколько лет я активно интересуюсь разработкой многопоточных приложений. И постоянно сталкиваюсь с тем, что формальную модель памяти — уникальный инструмент, позволяющий писать на Java доказуемо корректные многопоточные программы — практически никто не понимает и не умеет использовать в полной мере. В лучшем случае люди помнят про нотацию happens-before, но на практике просто используют полдюжины «как надо» и «как не надо» делать, в худшем случае вообще полагаются на ересь вроде «volatile store выполняет flush в глобальную память». Для такого положения дел есть свои причины: авторы JMM как будто специально старались сформулировать ее таким образом, чтоб без поллитры рабочему человеку было не разобраться. А потом Святые Пророки в concurrency-interest плачутся, что JMM не понимает никто, кроме господа бога, да и про него есть сомнения... Но нам ли слушать этих седых мудрецов? Конечно, за 50 минут мы вряд ли успеем все понять, но, надеюсь, вы сможете посмотреть на JMM другими глазами.
Руслан Черёмин, Работает с Java уже около 10 лет, начиная еще с версии 1.1. Вел разработку и клиентских и серверных приложений. В последние годы разрабатывал систему имитационного моделирования в Яндексе. В настоящее время занимается оптимизацией систем электронных торгов в Deutsche Bank. Области интересов: высокая производительность, benchmarking, многопоточность и concurrency. |
Bulletproof Java Concurrency
Доклад про опыт тестирования Concurrency в JDK/JVM, разного рода паззлеры, примеры того, как оптимизации и баги в HotSpot ломают модель памяти, и что нам с этим делать. Доклад наверняка будет требовать знания JMM.
Алексей Шипилёв, Работает над производительностью Java больше 7 лет. За это время он успел позаниматься производительностью Apache Harmony в Intel, затем перешёл в Sun Microsystems, а потом и в Oracle, где сегодня работает над производительностью Sun/Oracle JDK, в том числе производительностью JVM, библиотек классов, фреймворков и приложений. Алексей является техническим представителем Oracle в Standard Performance Evaluation Corporation (SPEC), занятой разработкой и поддержкой промышленных бенчмарков. |
Eclipse vs Intellij IDEA
Принято считать, что выбор IDE — вечный вопрос, не имеющий правильного ответа. Различий так много, что трудно выбрать, какие из них важнее, и все сходятся в одном: обе IDE примерно одинаковы по своим возможностям, и выбор одной из них — это дело вкуса. Не опускаясь в споры о плагинах, горячих клавишах и пр., я хочу показать, в чём состоит существенная разница между Eclipse и IDEA, и как это связано с разными стилями программирования и вообще процессами разработки.
Андрей Солнцев, Разработчик в таллинской компании Codeborne, которая занимается созданием интернет-банков, порталов самообслуживания, интеграцией инфосистем и пр. Андрей в бизнесе уже 10 лет. В рефакторингах, порочащих его, был замечен многократно. Ярый приверженец экстремального программирования: автоматически тестов, парного программирования и чистого кода. Чисто кодер! Закончил магистратуру Тартуского университета по специальности Computer Science. Организатор таллинского клуба программистов Devclub и эстонских олимпиад по программированию. |
Исследование возможностей и ограничений JVM по оптимизации памяти: история одного проекта
Для многих мир управления памятью в JVM остается тайной, покрытой мраком ровно до тех пор, пока не появляются неприятные проблемы. Мне довелось участвовать в проекте, где требования по памяти к системе были уменьшены в четыре раза, что потребовало от нас в кратчайшие сроки понять модель памяти в Java, разобраться в типах ссылок, алгоритмах сборки мусора и множестве контролирующих ключей. Помимо истории оптимизации проекта будет рассказано об исследование влияния настроек и приемов уменьшения расхода памяти на различных версиях и типах JVM.
Александр Макаров, |
Garbage-free logger
Одним из системных камней преткновения в производительности Java является сборщик мусора. Рассказ о том, зачем появился на свет безмусорный логгер, чего стоит не мусорить и как это влияет на работу приложения, а так же некоторые другие общие подходы по уменьшению мусорности.
Владимир Долженко, |
IntelliJ IDEA изнутри: архитектура, производительность, процесс разработки
В докладе будут рассмотрены некоторые аспекты архитектурного устройства среды разработки IntelliJ IDEA. Описаны изменения в архитектуре, которые были сделаны в процессе развития продукта для улучшения производительности. Приведены советы по настройке IntelliJ IDEA и окружения для увеличения скорости работы. Также будет рассказано о процессе разработки продукта IntelliJ IDEA, о том, как происходит планирование новой функциональности, тестирование и взаимодействие с пользователями.
Николай Чашников, Работает программистом в компании JetBrains с 2003 года, в команде IntelliJ IDEA — с 2005. Занимался самыми разными частями продукта, от внутренней build-системы до интеграции с Application Servers. Кандидат физ.-мат. наук по специальности «вычислительная математика». |
Динамическое обнаружение гонок в многопоточных Java-программах
Состояния гонки относятся к наиболее частым и неприятным ошибкам многопоточного программирования. Они возникают, когда несколько потоков несинхронизированно обращаются к общему участку памяти. Гонки очень сложно обнаружить вручную на всех этапах разработки ПО — их проявления обычно не видны сразу, а возникают они крайне редко, при очень специфическом чередовании операций в потоках.
Однако гонки приводят к повреждению глобальных структур данных и ошибкам в работе программы, поэтому необходимость в инструменте автоматического обнаружения гонок чрезвычайно высока. Мы уже достаточно давно разрабатываем свой динамический детектор гонок. Он во время работы программы собирает и анализирует информацию о ходе её выполнения и на лету ищет гонки. Безусловно, подобные разработки велись в прошлом и продолжают вестись, но, насколько нам известно, до общедоступного стабильного инструмента дело не дошло. Поэтому мы создали свой детектор, который уже используется для улучшения качества наших приложений и может использоваться для улучшения ваших!
В докладе мы расскажем о нашем опыте разработки детектора гонок:
- Как искать гонки в программах
- Как эффективно внедриться в ход работы Java-программы
- С какими принципиальными техническими трудностями мы столкнулись
- Как справиться с большим объемом данных.
Виталий Трифанов, Старший разработчик компании «Devexperts», в которой работает с 2007 года. Занимается разработкой внутренних систем и перспективных исследовательских проектов. Аспирант мат-меха СПбГУ. Ведет исследование в области динамического поиска гонок и эффективного применения техники манипулирования байт-кодом Java. |
Дмитрий Цителов, Ведущий разработчик компании «Devexperts». С 2005 года возглавляет Evolution Lab — группу внутренних разработок. Группа занимается разработкой перспективных исследовательских проектов и инструментальных средств, оптимизацией технологических процессов. Основные интересы: анализ и оптимизация производительности, разработка высоконагруженных распределённых систем, исследования в области разработки и верификации параллельных структур данных и алгоритмов. |
Java Life Story
Для многих из нас технологии становятся такой же неотъемлемой частью жизни, как города и страны, где мы живем, близкие нам люди, и языки, на которых мы общаемся. В речи мы всё чаще употребляем названия технологий и продуктов, и они становятся в один ряд с другими аспектами нашего существования. Самое же интересное происходит тогда, когда нам выпадает возможность не просто использовать технологии, а создавать и развивать их, и продвигать их за пределы изначальной аудитории — в новые страны, в новые сообщества, в новые области применения. Java появилась в моей жизни 15 лет назад, и за эти годы мне повезло не только стать участником создания и развития Java как языка и платформы, но и оказаться на передовой продвижения Java в Россию и в Петербург и стать основателем и руководителем петербургского Центра Высоких Технологий Sun Microsystems. Всё это время я наблюдала за становлением и ростом Java и хотела бы поделиться своими наблюдениями, а также взглядом на будущее развитие Java.
Аня Барски, Вице-президент по разработкам компании Azul Systems. Отвечает за разработку, поставку и поддержку клиентов всех продуктов, включая Zing, новаторскую и высокоэффективную JVM от Azul. На протяжении своей почти 20-летней карьеры в IT, Аня занимала различные должности в глобальных корпорациях и стартапах Силиконовой Долины. До Azul Аня работала в Advenira Enterprises, Яндекс Labs и Яндекс, где была вице-призидентом по разработке. До прихода в Яндекс Аня 11 лет работала на различных руководящих должностях в Sun Microsystems, в том числе организовала и возглавила петербургский офис Sun Microsystems. |