LINUX.ORG.RU

Принципиальные отличия OracleJDK и OpenJDK.

 , ,


2

3

Собственно вопрос - готов ли OpenJDK для продакшена?
В чем принципиальная разница между ними, кроме отсутствия JavaFX?
Успешные истории и причины перехода с OpenJDK и на OpenJDK?


stevejobs - где новость о Java10?

Deleted

Последнее исправление: Deleted (всего исправлений: 1)

В чем принципиальная разница между ними, кроме отсутствия JavaFX?

Разницы мало и в основном она видна на десктопе - например рендеринг шрифтов. В проприетарной - проприетарная реализация, в OpenJDK - freetype.

До недавнего времени с OpenJDK в дистрах приходилось отдельным пакетом заполнять сертификаты (что обычно никто не замечал), сейчас все пофиксили.

Производительность эквивалентна.

Иными словами нужно написать нехило странный код чтобы он не заработал на OpenJDK

vertexua ★★★★★
()
Последнее исправление: vertexua (всего исправлений: 1)

Ещё до недавнего времени версия openjdk для ARM была без JIT

TheAnonymous ★★★★★
()
Ответ на: комментарий от vertexua

Производительность эквивалентна.

даже близко не эквивалентна

доступ к натив-биндинг-либам из «проприетарной» происходит в десятки раз быстрее

лямбда в проприетарной «другие» они выполняются чутьли не в сотню раз быстрее, в опенсерс они как будто «бэкпортируются» в старый синтаксис полностью развернуто

про ГУЙ уже сказали, ну и гой в проприетарной быстрее

anonymous
()
Ответ на: комментарий от anonymous

А ссылку на бенчи подкинешь?

Deleted
()
Ответ на: комментарий от anonymous

по цифрам:

биндинг GL* либ дает на 25% больше ФПС на проприетарной (тоже самое и для любых других активно используемых бинарных либов)
простейшая лямбда отсюда https://github.com/danilw/cputests/blob/master/java/terrain.java равна нативной(в 20 раз быстрее опенсурс джавы), опенсурс даже медленнее джаваскрипта

anonymous
()

Новость про Java 10 на Хабре, потому что я устал от здешних модераторов. Если будет время - может, напишу.

Про JavaFX ничего не знаю, не использую.

В самое ближайшее время кроме OpenJDK ничего и не останется. У Оракла остались коммерческие фичи типа JFR и JMC, но они все уйдут в опенсорц в ближайшее время. ZGC опенсорсится прямо сейчас, AppCDS уже в составе Десятки.

Возможно, отличия останутся в рендеринге шрифтов по проприетарным алгоритмам.

Возможно, в Oracle Linux из местной бинарной сборки JDK будет выпилен Shenandoah GC, т.к. они не хотят конкуренции с собственным ZGC, но это борьба из разряда «назло маме отморожу уши» - можно не обращать внимания (всегда можно скачать или собрать полноценную версию)

stevejobs ★★★★☆
()
Ответ на: комментарий от anonymous

ну-ка дай бенчи какой-нибудь ещё «активно используемой бинарной либы»

ну ты и балабол, просто поразительно

stevejobs ★★★★☆
()
Ответ на: комментарий от stevejobs

ближайшее время

Прогноз масштаба года/трех/пяти? Хотя ладно, сдохнет, тогда и буду думать о перекатывании прода.

Deleted
()
Ответ на: комментарий от stevejobs

ну-ка дай бенчи какой-нибудь ещё «активно используемой бинарной либы»

биндинг нативной box-2d будет медленне в опенсерс-джаве, чем java версия box-2d, в проприетарной нативный биндинг будет чуть быстрее java версии

много либ биндятся при разработке любого джава-софта, сейчас уже не помню всяких быстрых xml парсеров гоняющих по 100мб тудасюда(бинарная либа в джава)

anonymous
()
Ответ на: комментарий от anonymous

биндинг нативной box-2d будет медленне в опенсерс-джаве, чем java версия box-2d, в проприетарной нативный биндинг будет чуть быстрее java версии

ну зафайли им баг

скорость работы JNI не зависит от того, проприетарная или опенсорцная версия используется, эти участки кода давным-давно общие

stevejobs ★★★★☆
()
Ответ на: комментарий от stevejobs

эти участки кода давным-давно общие

тоесть ты не знаешь что в OpenJDK8 JNI в 2 раза медленне чем в OpenJDK6 и 7 (и очевидно что медленне проприетарных)

заворачивать баги на то что всплывает в «хело вордах» соре в другой раз

anonymous
()
Ответ на: комментарий от anonymous

Я ничего не знаю про 6 и 7, потому что они на свалке истории. Прямо сейчас Java 10, а я сам на 11.

Сам скачай 10 оракловую джаву и 10 опенждк и удостоверься, что это одно и то же.

Бенчей ты кстати, так и не прислал, балабол

stevejobs ★★★★☆
()
Ответ на: комментарий от vertexua

Производительность эквивалентна.

Не для числодробилок - математика с плавающей точкой вроде была быстрее процентов на 30 в оракуле.

До недавнего времени с OpenJDK в дистрах приходилось отдельным пакетом заполнять сертификаты (что обычно никто не замечал), сейчас все пофиксили.

Там весь JCE отсутствует - т.е. керберос завести с опенждк вроде нельзя

kantoku
()

Если хочешь, чтобы работало, а не мудохаться с никому неизвестными проблемами, ставь Oracle JDK. OpenJDK это какой-то огрызок от него, на котором никто ничего не тестирует.

Legioner ★★★★★
()

У меня минесруфт на опенждк начинает тормозить если портануться на большое расстояние.

entefeed ☆☆☆
()
Ответ на: комментарий от barberry

Ну в самом деле, давайте еще 3d и физ.движки пилить на java.

Deleted
()
Ответ на: комментарий от Legioner

Ну мне все энтырпрайзные дядьки так говорят, только обычно их опыт последнего взаимодествия с OpenJDK происходил 5+ лет назад.
Ну и всегда есть IntelliJ, которая работает на патченой OpenJDK и вроде норм.

Deleted
()

Собственно вопрос - готов ли OpenJDK для продакшена?

Готов. На *BSD-системах, кроме Mac OS X, у тебя и альтернативы, в общем-то, нет. Посмотри на Azul Systems — в дополнение к коммереческой Azul Zing они предоставляютс сборки OpenJDK под маркой Azul Zulu. Вряд ли это делается для десктопа.

В чем принципиальная разница между ними, кроме отсутствия JavaFX?

Выше люди уже ответили (да, действительно, JMC, Flight Recorder, шрифты), но вот если ты рекурсивно пройдёшься ldd по каталогам установки и сравнишь зависимости, то увидишь следующее:

OpenJDK 1.8:

libfreetype6
libjpeg62-turbo
liblcms2-2
libpcsclite1
libpng16-16
libstdc++6
zlib1g

Azul Zulu 1.8:

libasound2

IBM J9 1.8:

libasound2
libexpat1
libfontconfig1
libfreetype6
libpng16-16
libstdc++6
libxft2
zlib1g

Oracle JDK 1.8:

libasound2
libatk1.0-0
libavcodec-extra-53
libavcodec-extra-54
libavcodec-extra-55
libavcodec-extra-56
libavformat53
libavformat54
libavformat55
libavformat56
libavresample2
libavutil54
libblkid1
libcairo2
libdatrie1
libdrm2
libexpat1
libffi6
libfontconfig1
libfreetype6
libgdk-pixbuf2.0-0
libgl1-mesa-glx
libglapi-mesa
libglib2.0-0
libgraphite2-3
libgsm1
libgtk2.0-0
libharfbuzz0b
libicu57
liblzma5
libmount1
libmp3lame0
libogg0
libopencore-amrnb0
libopencore-amrwb0
libopenjpeg5
libopus0
liborc-0.4-0
libpango-1.0-0
libpangocairo-1.0-0
libpangoft2-1.0-0
libpcre3
libpixman-1-0
libpng16-16
libschroedinger-1.0-0
libselinux1
libspeex1
libstdc++6
libthai0
libtheora0
libuuid1
libva1
libvo-aacenc0
libvo-amrwbenc0
libvorbis0a
libvorbisenc2
libvpx1
libx11-xcb1
libx264-142
libxcb-dri2-0
libxcb-dri3-0
libxcb-glx0
libxcb-present0
libxcb-render0
libxcb-shm0
libxcb-sync1
libxcomposite1
libxcursor1
libxdamage1
libxfixes3
libxinerama1
libxml2
libxrandr2
libxshmfence1
libxslt1.1
libxvidcore4
libxxf86vm1
zlib1g
Bass ★★★★★
()
Ответ на: комментарий от Legioner

не огрызок а референс. и следовательно - оракль и тестирует там всё, что тестируется.
а в остальном ты конечно же прав - если не в состоянии прочитать логи - лучше купить поддержку оракла.

SevikL ★★★★★
()
Ответ на: комментарий от Bass

пакет openjfx еще забыл. это надо присовокупить к openjdk

SevikL ★★★★★
()
Ответ на: комментарий от Legioner

на котором никто ничего не тестирует.

Тестируем. И на OpenJDK, и на J9.

Bass ★★★★★
()
Ответ на: комментарий от Bass

На *BSD-системах, кроме Mac OS X, у тебя и альтернативы, в общем-то, нет.

> freebsd-version
11.1-STABLE

> pkg info -x jdk
jdk9-doc-9.0.4
linux-oracle-jdk9-9.0.4
openjdk8-8.162.12_2

> /usr/local/linux-oracle-jdk9/bin/java -version
java version "9.0.4"
Java(TM) SE Runtime Environment (build 9.0.4+11)
Java HotSpot(TM) 64-Bit Server VM (build 9.0.4+11, mixed mode)
iZEN ★★★★★
()
Ответ на: комментарий от iZEN

Так то ж FreeBSD.

$ uname -a
DragonFly dragonflybsd.labs.intellij.net 5.0-RELEASE DragonFly v5.0.1-RELEASE #3: Sat Nov  4 20:23:04 EDT 2017     root@www.shiningsilence.com:/usr/obj/home/justin/release/5_0/sys/X86_64_GENERIC  x86_64

$ pkg search jdk
openjdk-7.151.01,1             Java Development Kit 7
openjdk-jre-7.151.01,1         Java Runtime Environment 7
openjdk8-8.162.12_1            Java Development Kit 8
openjdk8-jre-8.162.12_1        Java Runtime Environment 8

Или ты имеешь в виду Linux Emulation? Если да, то

  • какой смысл тогда гонять *BSD? И, к тому же
  • в OpenBSD 6.0, например, эту эмуляцию выпилили нахрен, например.
Bass ★★★★★
()
Ответ на: комментарий от iZEN

Впрочем, для FreeBSD до 8-й версии включительно таки был порт Sun JDK 1.5 и 1.6. Называлось это чудо Diablo JDK.

Bass ★★★★★
()
Ответ на: комментарий от Bass

какой смысл тогда гонять *BSD?

Oracle Java. База от CentOS 7.4. Отсутствует systemd и прочие несуразности. СХД на встроенном ZFS, а не где-то сбоку.

И, к тому же в OpenBSD 6.0, например,

А причём тут OpenBSD? Я не видел упоминания о том, что это универсальная оперсистема.

iZEN ★★★★★
()
Ответ на: комментарий от ckotinko

У OpenJDK как-то все очень плохо с рендерингом шрифтов, сглаживанием и вот этим вот всем. JetBrains бандлит патченую OpenJDK для своих продуктов, что бы не было ШГ.

Deleted
()
Ответ на: комментарий от Deleted

Ну не знаю - недавно в порт openjdk8 добавили опциональную зависимость от fontconfig/freetype2:

. Add a FONTCONFIG option which allows scaler to obtain per-family FreeType
  rendering and loading and may noticeably improves font rendering in Java
  appications

PR:		215636
Submitted by:	Dmitri Goutnik <dg@syrec.org>
- https://www.freshports.org/java/openjdk8/ Это значит, можно настраивать шрифты в Java из X'ов.

iZEN ★★★★★
()
Ответ на: комментарий от iZEN

На выходных посмотрю что там в чистой OpenJDK, но могу сказать, что патченная от JB рендерит лучше чем от Oracle.

Deleted
()
Ответ на: комментарий от stevejobs

ну до тебя ему очень далеко другой анон

anonymous
()
Ответ на: комментарий от Deleted

за исключением 4k мониторов на macOS. Там Эппд в обновлении что-то сломали полгода назад, теперь все жабопрограммы рендерят с тормозами, а на 4к начинается ад и израиль. ЖБ и Оракле патчат ждк на эту тему с переменным успехом. По состоянию на вчера, Оракловская сборка на 4к работает быстрей

stevejobs ★★★★☆
()
Последнее исправление: stevejobs (всего исправлений: 1)
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.