Wychodząc z niedawnej prośby czytelnika o obejrzenie kilku świeżych testów wydajności OpenJDK, oto testy od OpenJDK 9 do OpenJDK 18 oraz kompilacje wczesnego dostępu OpenJDK 19. Dodatkowo, OpenJ9 i GraalVM CE zostały dorzucone jako alternatywne implementacje.

>

Dla zaspokojenia tego żądania czytelnika, w tej rundzie testów Java JVM użyto procesora Intel Core i5 12600K z Ubuntu 22.04 LTS. Wszystkie testowane kompilacje OpenJDK zostały uzyskane z oficjalnych plików binarnych OpenJDK i przy użyciu najnowszych wydań w czasie testowania. Podobnie do testów wykorzystano referencyjne pliki binarne OpenJ9 i GraalVM CE. Poza przełączaniem implementacji Javy dla każdej serii testów, podczas testów nie wprowadzono żadnych innych zmian. Aby zachować ustawienia domyślne/gotowe do użycia, podczas testowania do implementacji Java nie przekazano żadnych dodatkowych argumentów w celu sprawdzenia wydajności referencyjnej dla implementacji JVM.

Jest to dość proste i proste porównanie benchmarków, więc przejdźmy do liczb.

Najpierw był bardzo prosty test Java SciMark 2.0, w którym wśród wydań OpenJDK nie było zbyt wiele zmian w wydajności JVM. OpenJ9 działał tutaj dobrze i był zgodny z najszybszymi wynikami OpenJDK — były to kompilacje OpenJ9 przeciwko JDK 8/11, podczas gdy kompilacja JDK 18 była znacznie wolniejsza wraz z kompilacjami GraalVM CE.

OpenJ9 działał znacznie wolniej niż OpenJDK i GraalVM w teście Sparse Matrix Multiply.

Ale kompilacje OpenJ9 JDK 8/11 działały znacznie szybciej niż pozostałe dla Dense LU Matrix Factorization.

OpenJ9 działał wolniej niż inne przetestowane JVM, jeśli chodzi o szyfrowanie plików Bork.

OpenJ9 również działał wolniej niż pozostałe w przypadku testu H2 DaCapo Benchmark. GraalVM CE przyniósł tutaj najszybsze wyniki, podczas gdy OpenJDK 18 i 19 były z powodzeniem najszybszymi testowanymi wersjami OpenJDK.

Test Jythona DaCapo Benchmark również wykazał, że OpenJDK 18 i 19 EA mają niewielką przewagę nad starszymi wersjami i alternatywą implementacje.

W niektórych benchmarkach z Renaissance, OpenJDK 8 nadal był w stanie prowadzić przez wąskie marginesy.

GraalVM CE Oracle działał bardzo dobrze w niektórych benchmarkach Renaissance w porównaniu do OpenJDK.

OpenJ9 nie udało się pomyślnie uruchomić niektórych testów porównawczych Renaissance.

Średnia geometryczna dotyczy wszystkich testów porównawczych Javy, w których zostały one pomyślnie przetestowane we wszystkich wersjach/implementacjach JVM w trakcie testu. OpenJDK 18, a zwłaszcza wczesny dostęp OpenJDK 19, wygląda ogólnie całkiem nieźle pod względem wydajności, aw niektórych przypadkach w końcu dorównuje lub przewyższa starą kompilację OpenJDK 8. GraalVM CE spisywał się również bardzo dobrze w wybranych testach porównawczych, podobnie jak OpenJ9 w kilku wybranych obszarach.

Lub powyżej przyjrzyjmy się średniej geometrycznej dla wszystkich wyników po porzuceniu przebiegów OpenJ9, ponieważ nie udało się ich uruchomić niektóre z wzorców renesansowych. Ta większa mieszanka danych pokazuje, że Oracle GraalVM CE jest dość konkurencyjny w stosunku do wydajności OpenJDK. OpenJDK 19 w formie EA wygląda całkiem ładnie z punktu widzenia wydajności. OpenJDK 19 GA jest spodziewany we wrześniu.

Ci, którzy chcą w pełni przejrzeć wszystkie wyniki testów JVM, mogą to zrobić za pośrednictwem ta strona wyników. Ponownie, testowanie miało na celu tylko domyślne/gotowe do użycia spojrzenie na wydajność JVM w tych wersjach OpenJDK i alternatywnych implementacjach.

Categories: IT Info