2010-07-19 12 views
30

Est-ce que quelqu'un connaît des tests de performances du nouveau garbage collector de Java (G1) (par rapport aux "anciens" GC)? En termes de temps de pause GC, Sun déclare que G1 est parfois meilleur et parfois pire que CMS. Alors que le collecteur G1 réussit à limiter le temps de pause total, il s'agit toujours d'un collecteur en temps réel. En d'autres termes, il ne peut pas garantir qu'il n'aura pas d'impact sur la capacité des threads de l'application à respecter ses délais, tout le temps. Cependant, il peut fonctionner dans un ensemble de limites bien définies qui le rendent idéal pour les systèmes en temps réel souples qui doivent maintenir des performances à haut débit. J'aimerais voir des mesures réelles du débit et de la latence pour les collecteurs CMS (balayage de marques simultanés) et G1 (déchets d'abord) de Java.Performance relative du garbage collector de Garbage First (G1) de Java?

Répondre

8

L'article scientifique original ("Garbage-First Garbage Collection" par Detlefs, Flood, Heller et Printezis) contient des informations sur les mesures réelles (dans la section 4).

+0

le papier est intéressant, mais si g1 est vraiment pour les applications serveur avec de grands tas, puis les mesures dans ce papier (tous avec moins de tas 1G) sont probablement pas très utile. – Kevin

0

G1 est comparé à CMS plus rapidement en raison de l'idée de multi-threads. Comparé au parallèle-GC je ne sais pas - il pourrait être le même. Bien sûr, G1 est plus temps réel en raison de pas deux types de threads en cours d'exécution (surtout le petit). C'est plus rapide parce que n'importe quel thread devrait avoir le même impact sur les performances. Même le compactage est fait uniquement sur la copie. Pour plus de détails un coup d'oeil de plus près ceci: http://geekroom.de/java/java-expertise-g1-fur-java-7/

3

Nous venons de terminer une série de tests sur CMS et G1, grâce à l'ergonomie comparable. Ceci est spécifique au produit et très subjectif, ET nous utilisons Java 6 (donc G1 est dans la version "preview") mais ...

Un système utilisant CMS est 20% plus rapide que G1. Cela a été testé avec 8 Go et 12 Go d'espace mémoire, avec 1 Go et 1,5 Go d'espace jeune (respectivement).

Encore une fois - subjectif, système unique, charge spécifique - mais c'est notre expérience.

+1

Comment définissez-vous "plus rapide"? Plus de débit, moins de latence, quoi? – dty

+2

CMS a donné un meilleur débit et moins de temps de pause stop-the-world total. Nous n'avons pas testé la réactivité des transactions individuelles. –

+0

Merci pour la réponse – dty

2

Si vous avez une application web, ou une autre application qui gère beaucoup de clients/req, et que le temps de réponse est important pour vous, alors il vaut mieux utiliser CMS. ce test a été trouvé dans « la performance et l'évolutivité Java »