Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Александр Белокрылов — Создавая дистрибутив OpenJDK

Moscow JUG
February 14, 2019

Александр Белокрылов — Создавая дистрибутив OpenJDK

Moscow JUG

February 14, 2019
Tweet

More Decks by Moscow JUG

Other Decks in Programming

Transcript

  1. 2 WWW.BELL-SW.COM 2 WWW.BELL-SW.COM 20 years of history Strong foundation

    1997 MCST – Moscow Center of SPARC Technologies The company worked as a contractor for Sun Microsystems 2004 Sun Microsystems founded its own Development Center in Saint-Petersburg. 2010 Oracle Corp. acquired Sun Microsystems 2017
  2. 7 WWW.BELL-SW.COM 7 WWW.BELL-SW.COM Liberica JDK итория 2017 ARM64 Binary

    ARM32 Binary Linux x86 64-bit, Windows x86 64-bit Docker with Alpine glibc MacOS, Solaris SPARC 2019 2018 Oracle объявил о прекращении поддержки ARM после JDK8 Oracle объявил об изменениях в Java 11 и окончании поддержки Java 8 Installers for Mac, Win, Linux Linux x86 32-bit Windows x86, 32-bit Docker with Alpine musl libc
  3. 8 WWW.BELL-SW.COM 8 WWW.BELL-SW.COM • Необходимо «Железо» для сборки и

    тестирования • Это дорого и бессмысленно • Виртуальное окружение не может100 % гарантировать достоверность тестов измерений производительности • Решение в гибридной инфраструктуре: локальные и виртуальные серверы • Поддержка Liberica JDK требует нескольких сотен серверов и инстансов Мудро подходи к выбору платформ
  4. 10 WWW.BELL-SW.COM 10 WWW.BELL-SW.COM • Компиляторы из Linux не всегда

    приводят к желаемым результатам • Сначала строим «Правильные» компиляторы • Использование «Правильных» компиляторов дает преимущества • Oracle & BellSoft works on moving to gcc 8. – Meltdown and Spectre – Стабильность – Производительность Компиляторы и Тулчейн
  5. 12 WWW.BELL-SW.COM 12 WWW.BELL-SW.COM Что делать, чтобы починить билд? Захачить

    билд систему и выложить с гордостью на GitHub. Починить OpenJDK билд процесс и залить в upstream
  6. 17 WWW.BELL-SW.COM 17 WWW.BELL-SW.COM • TCK это: – 500 инженеров

    × лет – 300 страниц документации – 200K+ тестов • TCK Верификация бинарного дистрибутива гарантирует соответствие зонтичной спецификации Java SE и JSR соответствующих версий TCK – гарантирует соответствие стандарту Java SE
  7. 20 WWW.BELL-SW.COM 20 WWW.BELL-SW.COM • Баги обнаруженные TCK – java

    -XX:+UseCompactStrings – Win32 VM test (регрессионные тесты прошли) • Любая из платформ в зоне риска • Что делать, при обнаружении проблем? Fix OpenJDK TCK верификация важнейший шаг в тестировании
  8. 23 WWW.BELL-SW.COM 23 WWW.BELL-SW.COM • jtreg regression test harness –

    20K + тестов разработано с 1997 – Должны проходить 100% тестов, без exception list – Иногда оно случается • Один из JTreg тестов падает в 1% запусков • И что делать? • Fix OpenJDK Регрессионное тестирование
  9. 24 WWW.BELL-SW.COM 24 WWW.BELL-SW.COM • jcstress – Java concurrency stress

    tests – JVM – Class libraries – Hardware • В качестве пользы, информация о поведении рантайма на конкретной платформе Java Concurrency Stress tests
  10. 25 WWW.BELL-SW.COM 25 WWW.BELL-SW.COM • Индустриальный стандарт – SPECjvm –

    SPECjbb • Microbenchmarks Бенчмарки ARM vs Intel Статья Алексея Войтылова в Java Magazine
  11. 26 WWW.BELL-SW.COM 26 WWW.BELL-SW.COM • Java приложения с их тестами

    – Hadoop - HiBench и функциональные тесты – Все хорошо, пока все хорошо – А если нет? Не понятно где проблема. • Тестирование с помощью приложений хорошее дополнение, но не может быть основным критерием качества Кросс-чек
  12. 27 WWW.BELL-SW.COM 27 WWW.BELL-SW.COM • Возможны 1050 комбинация платформ, бинарников

    и параметров VM. • Мы бы с радостью тестировали все, но жизнь слишком коротка • Только опыт подскажет что важно А что, собственно, тестировать?
  13. 28 WWW.BELL-SW.COM 28 WWW.BELL-SW.COM • Доставляем YourJDK.tar.gz – Опять они

    недовольны. – Eclipse не работает. • Приносим счастье! – Linux пакеты – Win инсталлятор – Mac инсталлятор – SDKMAN – И Eclipse работает из коробки Готовы к доставке!
  14. 29 WWW.BELL-SW.COM 29 WWW.BELL-SW.COM Ну теперь-то мы точно готовы выпустить

    нашу суперкачественную сборку OpenJDK ! Да, но нужно помнить о 20 000 открытых багов в OpenJDK