In der Vergangenheit gab es viele Artikel, in denen Oracle JDK und Open JDK verglichen wurden. Selbst zu dieser Zeit waren die beiden fast gleich und "der Unterschied zwischen den beiden wird in Zukunft verschwinden" Material (PDF) Es gab auch .pdf). In der Vergangenheit gab es auch einen Artikel wie diesen, der den Unterschied in der CPU-Architektur, dh den Unterschied in der Leistung zwischen Intel und ARM, zeigt. Ende 2017 wurde Verschiedene Bewegungen als Oracle JDK veröffentlicht. Und im OpenJDK.
Gibt es übrigens auch heute noch einen Leistungsunterschied zwischen Oracle JDK und OpenJDK?
Ich werde es überprüfen. Der Code lautet hier. Eine Rest-API-Anwendung mit Spring Boot, die Daten 1000 Mal im Testcode CRUDs (erstellt, durchsucht, ändert, löscht). Ich werde Oracle OpenJDK jeweils 5 Mal und 10 Mal für das System messen. Die verwendete Version von JDK ist 1.8.0_152, Oracle ist hier, OpenJDK ist hier ) Es bekommen.
Mac Führen Sie es auf Ihrem Mac aus, um loszulegen.
MacBook Pro (Retina, 13-inch, Late 2012)
Prozessor 2.9 GHz Intel Core i7
Speicher 8 GB 1600 MHz DDR3
Auszug aus dem Protokoll. Azul Systems, Inc. ist das OpenJDK. Insgesamt ist dies der Durchschnitt der Zeit, die benötigt wurde, um alle Fälle abzuschließen, und der Zeit, die durchschnittlich benötigt wurde, um eine CRUD abzuschließen. Da es in mehreren Threads ausgeführt wird, beträgt der Durchschnitt * 1000 ≠ die Zeit, die zum Abschließen aller Datensätze benötigt wurde.
# summary :Oracle Corporation 1.8.0_152, total : 13093, avr :50.50707070707071
# summary :Azul Systems, Inc. 1.8.0_152, total : 13219, avr :51.61749745676501
# summary :Oracle Corporation 1.8.0_152, total : 14221, avr :55.51567239635996
# summary :Azul Systems, Inc. 1.8.0_152, total : 14199, avr :55.383756345177666
# summary :Oracle Corporation 1.8.0_152, total : 14041, avr :54.699195171026155
# summary :Azul Systems, Inc. 1.8.0_152, total : 13726, avr :53.41538461538462
# summary :Oracle Corporation 1.8.0_152, total : 14385, avr :56.066869300911854
# summary :Azul Systems, Inc. 1.8.0_152, total : 12657, avr :49.50912778904665
# summary :Oracle Corporation 1.8.0_152, total : 14370, avr :55.76200204290092
# summary :Azul Systems, Inc. 1.8.0_152, total : 14021, avr :54.15415821501014
Oh, ich sehe keinen signifikanten Unterschied.
Linux x64 Ich habe CentOS mit Virtual Box auf dem oben genannten Mac gestartet und mit CPU 2, Mem 2048 ausgeführt.
# summary :Oracle Corporation 1.8.0_152, total : 27041, avr :53.996
# summary :Azul Systems, Inc. 1.8.0_152, total : 28390, avr :56.06406406406406
# summary :Oracle Corporation 1.8.0_152, total : 27767, avr :54.964
# summary :Azul Systems, Inc. 1.8.0_152, total : 27635, avr :54.878
# summary :Oracle Corporation 1.8.0_152, total : 30113, avr :59.563
# summary :Azul Systems, Inc. 1.8.0_152, total : 26138, avr :51.66466466466466
# summary :Oracle Corporation 1.8.0_152, total : 28239, avr :55.88
# summary :Azul Systems, Inc. 1.8.0_152, total : 27637, avr :55.074
# summary :Oracle Corporation 1.8.0_152, total : 28477, avr :56.231
# summary :Azul Systems, Inc. 1.8.0_152, total : 27685, avr :54.856
Ebenso wird kein signifikanter Unterschied gefunden.
Windows x64 Ich habe es auch unter Windows 10 auf Mac versucht.
# summary :Oracle Corporation 1.8.0_152, total : 88932, avr :170.171
# summary :Azul Systems, Inc. 1.8.0_152, total : 104348, avr :207.67
# summary :Oracle Corporation 1.8.0_152, total : 89635, avr :179.223
# summary :Azul Systems, Inc. 1.8.0_152, total : 92882, avr :179.815
# summary :Oracle Corporation 1.8.0_152, total : 84967, avr :165.057
# summary :Azul Systems, Inc. 1.8.0_152, total : 96394, avr :191.677
# summary :Oracle Corporation 1.8.0_152, total : 87724, avr :174.424
# summary :Azul Systems, Inc. 1.8.0_152, total : 83325, avr :164.012
# summary :Oracle Corporation 1.8.0_152, total : 89018, avr :169.627
# summary :Azul Systems, Inc. 1.8.0_152, total : 87105, avr :170.365
Es sieht so aus, als gäbe es keinen signifikanten Unterschied.
Linux ARM 32 Ich habe es auf Raspberry Pi2 B ausgeführt.
# summary :Oracle Corporation 1.8.0_152, total : 87153, avr :345.167
# summary :Azul Systems, Inc. 1.8.0_152, total : 98166, avr :389.905
# summary :Oracle Corporation 1.8.0_152, total : 86835, avr :345.236
# summary :Azul Systems, Inc. 1.8.0_152, total : 101888, avr :405.66166166166164
# summary :Oracle Corporation 1.8.0_152, total : 85945, avr :342.2522522522523
# summary :Azul Systems, Inc. 1.8.0_152, total : 97561, avr :385.345
# summary :Oracle Corporation 1.8.0_152, total : 87837, avr :345.8416833667335
# summary :Azul Systems, Inc. 1.8.0_152, total : 97551, avr :385.878
# summary :Oracle Corporation 1.8.0_152, total : 86338, avr :343.878
# summary :Azul Systems, Inc. 1.8.0_152, total : 96303, avr :383.2995991983968
Oh! Es gibt einen Unterschied! Etwa 10% schneller mit dem Oracke JDK!
Linux ARM 64 Ich habe es auf einem ARM-Einplatinencomputer namens PINE64 versucht.
# summary :Oracle Corporation 1.8.0_152, total : 125477, avr :500.5605605605606
# summary :Azul Systems, Inc. 1.8.0_152, total : 67825, avr :267.8199195171026
# summary :Oracle Corporation 1.8.0_152, total : 123450, avr :492.10854271356783
# summary :Azul Systems, Inc. 1.8.0_152, total : 69810, avr :275.91691691691693
# summary :Oracle Corporation 1.8.0_152, total : 129602, avr :517.0773092369478
# summary :Azul Systems, Inc. 1.8.0_152, total : 67636, avr :265.72754793138245
# summary :Oracle Corporation 1.8.0_152, total : 125981, avr :501.3711133400201
# summary :Azul Systems, Inc. 1.8.0_152, total : 71870, avr :283.9637826961771
# summary :Oracle Corporation 1.8.0_152, total : 127799, avr :507.6098294884654
# summary :Azul Systems, Inc. 1.8.0_152, total : 69773, avr :275.34375
ohhhhhhhh! Es gibt einen erheblichen Unterschied! OpenJDK ist ungefähr 40% schneller! Es ist wunderbar.
Bis Ende 2017 gab es unter Intel keinen signifikanten Leistungsunterschied zwischen Mac, Linux und Windows. Bei ARM wurde jedoch ein Unterschied beobachtet, und das Ergebnis war, dass OpenJDK eine um 40% bessere Leistung aufwies, insbesondere bei 64 Bit. Von nun an ist es sehr wahrscheinlich, dass ARM, das der Energieeinsparung überlegen ist, für Serveranwendungen verwendet wird. Wenn Sie zu diesem Zeitpunkt OpenJDK verwenden, können Sie die Anzahl der Server erheblich reduzieren, was hinsichtlich der Kosten von Vorteil sein kann. Ist es nicht möglich, das OpenJDK für die Entwicklung zu verwenden, da es keinen Leistungsunterschied zwischen den JDKs für jede Umgebung gibt? Wie ist das? Versuchen Sie zu diesem Zeitpunkt, OpenJDK für die Entwicklungsumgebung, die Produktionsumgebung und alle Java-Laufzeiten zu verwenden!
Recommended Posts