OpenJDK - czy to się nadaje na produkcję?

0

Witam,
Słyszałem, że OpenJDK to jakościowo dużo gorsza implementacja niż Oracle. Czy to prawda, a może ktoś używa tego na produkcji i jest zadowolony?

Pozdrawiam,

0

Ja używam OpenJDK 7 na Ubuntu i jestem zadowolony,do nauki starcza.Ale nie wiem,czy to ja mam coś nie tak,czy to ten OpenJDK,ale gdy chcę zrobić coś co (z tego co czytałem)jest na JDK 1.7,wyskakuje mi,że mam JDK 1.6.Jak dla mnie to JDK Oracle i OpenJDK to prawie to samo.

0

OpenJDK i JDK od Oracle, z tego co czytałem, mają bardzo dużą część wspólną jeśli chodzi o kod. Pewne różnice występują, ponieważ JDK od Oracle zawiera chyba jeszcze jakieś rzeczy, które są objęte ochroną patentową/ autorską/ cokolwiek i nie mogą całości kodu JDK od Oracle upublicznić. Te chronione części są przepisane w OpenJDK, ale te otwarte odpowiedniki mają niższą jakość/ wydajność/ etc

0

Na twoim miejscu zabiłbym cielaka, od którego słyszałeś, że OpenJDK jest gorsze od JDK stworzonego przez Oracle..

Słyszałeś kiedyś o tym, jak kompiluje się system Android? Jeśli nie to wiedz, że na systemach Linuxowych, i wymagane jest posiadanie JDK, a mianowicie właśnie OPENJDK. Wyobraź sobie, jak bardzo wielkim trzeba byłoby być debilem, aby pisać system w "gorszej implementacji Javy".

0

OpenJDK jeszcze niedawno był znacznie (~40%) wolniejszy niż HotSpot. Miał też trochę zabawnych bugów w implementacji swinga ("ciekawie" wyliczał położenie myszy i można było sobie klikać przyciski w drugim końcu ekranu) jak i w kompilatorze (potrafił tworzyć mocno przerośnięte klasy). Teraz jest znacznie lepiej i do takiej codziennej pracy można spokojnie używać. Na produkcję za pieniążki to raczej JRockit ;)

0

Fajnie, że OpenJDK się rozwija. Moje zainteresowanie tą implementacją wynika z tego, że Oracle nie udostępnia swojej implementacji dla FreeBSD, a system ma kilka fajnych opcji i fajnie byłoby postawić na nim GlassFisha, ale póki co zostanę na Linuksie i Oracle (sprawdzone rozwiązanie).

Zastanawia mnie też jak wsparcia dla tego co pozostało po projekcie OpenSolaris, czyli Illumos. Prawdopodobnie prędzej czy później wydaje mi się, że nie będzie działać na tym Oracle JDK i trzeba będzie i tak korzystać z wersji open source.

Pozdrawiam,

0

@Koziołek: a wiesz jak sie ma sprawa teraz?
Domyślnie na Ubuntu jest openjdk, i tak zastanawiam się czym się obecnie różni od Oraclowego JDK.
INB4 złota łopata :D

0
scibi92 napisał(a):

Domyślnie na Ubuntu jest openjdk, i tak zastanawiam się czym się obecnie różni od Oraclowego JDK.
INB4 złota łopata :D

Cytat z książki https://www.amazon.com/Java-Performance-Definitive-Guide-Getting/dp/1449358454/ , która dotyczy wersji 7 i 8:

Oracle’s Commercial JVM
Java and the JVM are open source; anyone may participate in the development of Java
by joining the project at http://openjdk.java.net. Even if you don’t want to actively par‐
ticipate in development, source code can be freely downloaded from that site. For the
most part, everything discussed in this book is part of the open source version of Java.
Oracle also has a commercial version of Java, which is available via a support contract.
That is based on the standard, open source Java platform, but it contains a few features
that are not in the open source version. One feature of the commercial JVM that is
important to performance work is Java Flight Recorder (see “Java Flight Recorder” on page 60
).
Unless otherwise mentioned, all information in this book applies to the open source
version of Java.

0
scibi92 napisał(a):

@Koziołek: a wiesz jak sie ma sprawa teraz?
Domyślnie na Ubuntu jest openjdk, i tak zastanawiam się czym się obecnie różni od Oraclowego JDK.
INB4 złota łopata :D

Z tego co wiem HotSpot oferuję dodatkową optymalizację. Np. tzw. hot spots ("gorące punkty").

0

HotSpot jest zarówno w OpenJDK jak i Oracle JDK.

Q: What is the difference between the source code found in the OpenJDK repository, and the code you use to build the Oracle JDK?

A: It is very close - our build process for Oracle JDK releases builds on OpenJDK 7 by adding just a couple of pieces, like the deployment code, which includes Oracle's implementation of the Java Plugin and Java WebStart, as well as some closed source third party components like a graphics rasterizer, some open source third party components, like Rhino, and a few bits and pieces here and there, like additional documentation or third party fonts. Moving forward, our intent is to open source all pieces of the Oracle JDK except those that we consider commercial features such as JRockit Mission Control (not yet available in Oracle JDK), and replace encumbered third party components with open source alternatives to achieve closer parity between the code bases.

Pełna odpowiedź tutaj: http://stackoverflow.com/questions/11547458/what-is-the-difference-between-jvm-jdk-jre-openjdk a w niej link do porównania wersji HotSpota w OpenJDK i Oracle JDK: https://gist.github.com/rednaxelafx/925323

Różnice typu graphics rasterizer czy third party fonts są dla niektórych nie do przejścia (bo na OpenJDK wygląda niby gorzej), ale ogólnie ilość różnic między OpenJDK i Oracle JDK maleje i plan jest w skrócie taki, by Oracle JDK różniło się od OpenJDK tylko komercyjnymi opcjonalnymi dodatkami.

Kolejne informacje:
https://en.wikipedia.org/wiki/OpenJDK

OpenJDK was initially based only on the JDK 7 version of the Java platform.[7]

There are several separate OpenJDK projects:

- The OpenJDK 9 project, which is the basis for JDK 9.
- The OpenJDK 8 project, which is the basis for JDK 8, was released on 18 March 2014.
- The OpenJDK 8u project, which is based on JDK 8 and produces updates to the existing Java 8 releases.
- The OpenJDK 7u project, which is based on JDK 7 and produces updates to the existing Java 7 releases.
- The OpenJDK 6 project, which is based on JDK 7, retrofitted to provide an open-source version of Java 6.[8][9]

Jak widać, od Javy 7 jest wysiłek by ujednolicać Oracle JDK i OpenJDK, bo inaczej nie opłacało by się opierać Oracle JDK o OpenJDK.

OpenJDK 9 ma też nowości takie jak:

  • HarfBuzz Font-Layout Engine
  • Marlin Graphics Renderer

To drugie jest używane nawet jako składnik zmodyfikowanego OpenJDK wbudowanego w IntelliJ: https://github.com/bourgesl/marlin-renderer
Ogólnie wychodzi na to, że różnice między OpenJDK 9, a Oracle JDK 9 będą niewidoczne gołym okiem dla typowego użytkownika.

0

Na chwilę obecną OpenJDK i HotSpot, to w praktyce ten sam produkt, a różnice leżą w dodatkach dołączonych do dystrybucji.

1 użytkowników online, w tym zalogowanych: 0, gości: 1