Dans le passé, de nombreux articles comparaient Oracle JDK et Open JDK. Même à ce moment-là, les deux étaient presque identiques, et "la différence entre les deux disparaîtra à l'avenir" Matériel (PDF) Il y avait aussi .pdf). De plus, dans le passé, il y avait un article comme celui-ci montrant la différence dans l'architecture du processeur, c'est-à-dire la différence de performances entre Intel et ARM. Et à la fin de 2017, Divers mouvements est sorti sous le nom d'Oracle JDK. Et dans l'OpenJDK.
Au fait, y a-t-il une différence de performances entre Oracle JDK et OpenJDK encore aujourd'hui?
Je vais le vérifier. Le code est ici. Une application d'API Rest avec Spring Boot qui CRUD (crée, parcourt, modifie, supprime) les données 1000 fois dans le code de test. Je vais mesurer Oracle OpenJDK 5 fois chacun et 10 fois pour le système. La version de JDK utilisée est 1.8.0_152, Oracle est ici, OpenJDK est ici ) Pour l'obtenir.
Mac Exécutez-le sur votre Mac pour commencer.
MacBook Pro (Retina, 13-inch, Late 2012)
Processeur 2.9 GHz Intel Core i7
Mémoire DDR3 de 8 Go à 1600 MHz
Extrait du journal. Azul Systems, Inc. est l'OpenJDK. Au total, c'est la moyenne du temps qu'il a fallu pour terminer tous les cas et du temps qu'il a fallu en avr pour terminer un CRUD. Comme il est exécuté dans plusieurs threads, la moyenne * 1000 ≠ le temps qu'il a fallu pour terminer tous les enregistrements.
# 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, je ne vois aucune différence significative.
Linux x64 J'ai démarré CentOS avec Virtual Box sur le Mac ci-dessus et l'ai exécuté avec CPU 2, Mem 2048.
# 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
De même, aucune différence significative n'est trouvée.
Windows x64 Je l'ai également essayé sur Windows 10 sur Mac.
# 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
Il semble qu'il n'y ait pas de différence significative.
Linux ARM 32 Je l'ai exécuté sur Raspberry Pi2 B.
# 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! Il y a une différence: environ 10% plus rapide avec le JDK Oracke!
Linux ARM 64 Je l'ai essayé sur un ordinateur monocarte ARM appelé PINE64.
# 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! Il y a une différence considérable! OpenJDK est environ 40% plus rapide! C'est incroyable.
À la fin de 2017, il n'y avait pas de différence de performances significative entre Mac, Linux et Windows sur Intel. Cependant, une différence a été observée sur ARM, et le résultat était qu'OpenJDK avait 40% de meilleures performances, en particulier sur 64 bits. Désormais, il est hautement concevable que ARM, qui est supérieur à l'économie d'énergie, soit utilisé pour les applications serveur. Si vous utilisez OpenJDK à ce moment-là, vous pouvez réduire considérablement le nombre de serveurs, ce qui peut être un avantage en termes de coût. De plus, comme il n'y a pas de différence de performances entre les JDK pour chaque environnement, n'est-il pas possible d'utiliser OpenJDK pour le développement? Comment c'est? À ce stade, essayez d'utiliser OpenJDK pour l'environnement de développement, l'environnement de production et tous les environnements d'exécution Java!
Recommended Posts