BT

Diffuser les Connaissances et l'Innovation dans le Développement Logiciel d'Entreprise

Contribuez

Sujets

Sélectionner votre région

Accueil InfoQ Actualités Oracle propose G1 comme Ramasse-Miettes par défaut pour Java 9

Oracle propose G1 comme Ramasse-Miettes par défaut pour Java 9

Oracle envisage d'inclure JEP 248 dans la liste des JEP ciblant Java 9, rendant G1 le ramasse-miettes par défaut sur les configurations de serveur. La décision a déclenché un débat au sein de la communauté Java, avec beaucoup qui estiment que le collector Concurrent Mark and Sweep (CMS) aurait pu être plus approprié.

Si la décision est de poursuivre, G1 remplacerait Parallel GC comme choix par défaut pour les configurations de serveur. Tel que décrit dans le livre blanc La Gestion de la Mémoire publié par Oracle, Parallel GC a été conçu pour maximiser le débit des applications par l'intermédiaire de rares pauses (quoi que potentiellement longues) de Stop-The-World (STW). En minimisant le temps de calcul total utilisé par le collector, Parallel GC est moins perturbateur à long terme, offrant ainsi une meilleure performance générale. Ce collector est idéal pour les applications où le temps de réponse ne pose pas de problème, par exemple pour les traitements par lots.

D'autre part, Garbage First (G1) est conçu pour minimiser les pauses STW au détriment d'un coût de calcul plus élevé, comme expliqué précédemment sur ​​InfoQ par Monica Beckwith, ancien chef de la performance pour G1. G1 est mieux adapté pour les applications à faible latence comme les serveurs Web, ce qui constitue la motivation présentée par Stefan Johansson dans le JEP :

Limiter les temps de pause GC, en général, est plus important que maximiser le débit. Le passage à un collector à faible pause tel que G1 devrait fournir une meilleure expérience globale pour la plupart des utilisateurs, comparé à un collector orienté débit tel que le Parallel GC (actuellement par défaut).

La controverse vient du fait que le CMS a été introduit en HotSpot pour le même but, décrit par Oracle comme "Conçu pour les applications qui préfèrent de courtes pauses de ramasse-miettes, ce qui permet de partager les ressources du processeur avec le ramasse-miettes tandis que l'application est en cours d'exécution". Beaucoup d'études comparatives publiquement disponibles indiquent que CMS a tendance à surpasser G1 pour les applications relativement à faible empreinte, ce qui correspond à la description d'Oracle de G1 comme étant conçu pour les applications en mode serveur avec des heaps de 6 Go voir plus.

Kirk Pepperdine, expert en performance, a souligné dans une communication récente que Google avait contribué à un certain nombre d'améliorations sur CMS qui n'ont jamais vu le jour sur HotSpot. Il a également ajouté que, bien que G1 soit probablement le meilleur choix à long terme, les priorités d'ingénierie chez Oracle ont privé la communauté d'une meilleure expérience avec CMS.

Evaluer cet article

Pertinence
Style

Contenu Éducatif

BT