30 votes

Le G1GC n'est-il toujours pas officiellement prêt pour la production?

Je me demande quel est le statut officiel de "poubelle de la première" (G1) collecteur dans le JDK 7 release est. Je voudrais utiliser G1 basse pause gc alternative à la CMS, mais seulement si je peux vraiment faire confiance sur sa robustesse.

Avant de JDK 7 était sorti, G1 a été annoncé comme le nouveau brillant gc va remplacer le CMS collector et même par défaut gc dans le JDK 7. Cependant, maintenant avec Oracle JDK 7u1, G1 n'est pas la valeur par défaut gc sur n'importe quelle machine, j'ai essayé.

Même si on n'a pas besoin de spécifier -XX:+UnlockExperimentalVMOptions plus lors de l'utilisation -XX:+UseG1GC dans le JDK 7, c'est une JVM qui est officiellement documentés:

Java 7 (JDK 7) collecte des ordures et de la documentation

Le seul document officiel que j'ai pu trouver qui mentionne G1 est sérieusement obsolète et a été écrit longtemps avant de JDK 7 est sorti:

http://www.oracle.com/technetwork/java/javase/tech/g1-intro-jsp-135488.html

Par exemple, l'officiel "Java HotSpot VM Options" de la documentation ( http://www.oracle.com/technetwork/java/javase/tech/vmoptions-jsp-140102.html ) les documents de la façon d'activer et de régler les autres collectionneurs, mais ne mentionne même pas l'existence de G1. Comme si elle n'existait pas!

C'est assez confus et je me demande quel est l'état réel de la G1 et quel est son avenir. Est-il vraiment stable encore? Demandez aux autres questions (comme les fuites, les parasites des accidents et manque d'instrumentation de soutien) ont-ils été résolus? Et si oui, pourquoi n'Oracle traiter la G1GC comme un sans-papiers (gênant?) secret? Est G1 peut-être l'échec d'un projet qui est maintenant en silence interrompu? Ou dois-je payer pour de la documentation et de soutien? Ou est-ce juste encore une version bêta? Quelqu'un peut-il m'éclairer sur ce qui se passe ici?

12voto

Bringer128 Points 3590

L'endroit pour poser cette question est sur le point d'accès-gc-dev mailing list.

Si vous regardez dans les archives , vous trouverez qu'il ya beaucoup de travail à faire. Beaucoup de l'e-mail semble s'engage et les demandes de révision/commentaires tellement ils sont occupés à travailler sur elle.

Je n'ai trouvé aucune officiel des annonces de nouvelles, mais c'est la façon dont Oracle fonctionne. Vous pourriez être en mesure de demander sur la liste de diffusion de la façon dont ils pensent qu'ils vont, si vous êtes heureux avec un non-officiel et non-contraignant commentaire de l'un des devs.

EDIT: @scravy envoyé un email à la liste de diffusion, c'est la réponse reçue:

Je ne pense pas qu'il existe une réponse simple à cette question, bien que probablement pas. G1 de l'objectif initial était de fournir une pause pour les très gros tas. Ce qui signifie aujourd'hui, il pourrait ne pas être la le meilleur choix pour tout le monde. Nous pensons que la technologie a beaucoup de les jambes", même si, ce qui signifie qu'avec l'adaptation, il peut répondre à de nombreux les différents types de collecte des ordures de la demande. Alors, un jour, il peut-être le défaut collectionneur, mais il est trop tôt pour sais pour sûr.

Considérant que la GC changements de comportement peuvent être très perturbants pour les les déploiements existants, nous sommes réticents à faire des changements comme ça même dans les versions majeures sans considérable à l'avance. Ainsi, dans les versions en cours, si vous ne spécifiez pas un collectionneur, nous essayons de faire simple automatisé des choix, mais je doute que nous aimerions faire des changements radicaux à qui le comportement à court terme.

Pour la plus grande question concernant G1 est pris en charge, le courant la réponse est non. Mais gardez à l'esprit que le soutien de l'engagement que les Oracle permet à ses clients pour les produits pris en charge est assez importante, et il ya beaucoup plus à lui que juste de réunion la fonctionnalité et les exigences en matière de fiabilité.

Nous encourageons tout le monde pour tester et évaluer G1, et de bien sûr, fournir de la rétroaction pour nous, alors que nous continuons importante développement sur G1.

-Jean

6voto

emkays Points 11

Nous sommes déjà à l'aide de G1GC, depuis presque un an et demi. Faire grande dans notre mission critique du système de traitement des transactions, et Il s'est avéré être d'un grand soutien.w.r.t haut débit, peu de pause, la simultanéité, le multi-threading et optimisé lourds la gestion de la mémoire.

Nous sommes suivantes à l'aide de paramètres de la JVM:

-serveur -d64 -Xms512m -Xmx3072m -XX:+HeapDumpOnOutOfMemoryError -XX:+UseG1GC -XX:+UnlockExperimentalVMOptions -XX:+AggressiveOpts -XX:+DoEscapeAnalysis -XX:MaxGCPauseMillis=400 -XX:GCPauseIntervalMillis=8000 -XX:+UseCompressedOops -XX:NewRatio=50

2voto

Jon Points 4637

Selon ce: http://www.oracle.com/technetwork/java/javase/tech/g1-intro-jsp-135488.html,

G1 développement se concentre désormais principalement sur la résolution tout en restant des problèmes de fiabilité et d'amélioration de la performance

Aussi,

En termes de GC des temps de pause, G1 est parfois le meilleur et parfois pour le pire que de CMS. Le travail est en cours pour que G1 constante que bon, si ce n' mieux que, CMS.

Si G1 est soi-disant-ce qui va remplacer la CMS lorsque le représentant de l'JDK SE 7 est sorti.

1voto

BegemoT Points 2020

AFAIK, G1 n'est pas un secret - il est ouvert pour une utilisation expérimentale assez longtemps - au moins un an ou deux. Chaque JavaOne est livré avec une sélection sur la qualité de G1 :)

De sources non officielles: c'est l'un des centres d'intérêt actuels des ingénieurs Java, pour enfin préparer la production G1. Ils n'étaient tout simplement pas prêts à l'ouvrir pour JDK 7. Continuez à attendre :)

1voto

Trevor Robinson Points 3657

Il semble que la page liée dans la question ait été mise à jour:

Le garbage collector Garbage-First (G1) est entièrement pris en charge dans Oracle JDK 7 mise à jour 4 et versions ultérieures.

(Notez cependant que pour les plates-formes embarquées comme ARM, il n'est pas encore pris en charge du tout dans 7u4.)

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X