2010-07-19 18 views
30

Qualcuno sa di qualsiasi benchmark delle prestazioni del nuovo Garbage First (G1) Garbage Collector di Java (rispetto ai "vecchi" GC)?Prestazioni relative di Garbage Collector (G1) Garbage First di Java?

In termini di tempi di pausa GC, Sun afferma che G1 è talvolta migliore e talvolta peggiore di CMS. Mentre il collezionista G1 riesce a limitare il tempo di pausa totale, è ancora solo un morbido raccoglitore in tempo reale. In altre parole, non può garantire che non inciderà sulla capacità dei thread dell'applicazione di rispettare le scadenze, sempre. Tuttavia, può operare all'interno di un insieme ben definito di limiti che lo rendono ideale per i sistemi soft real-time che necessitano di mantenere elevate prestazioni.

Mi piacerebbe vedere le misure effettive del throughput e della latenza per i collector CMS (spazzatura contrassegni simultanei) e G1 (spazzatura prima) di Java.

risposta

8

L'articolo scientifico originale ("Garbage-First Garbage Collection" da Detlefs, Flood, Heller e Printezis) contiene alcuni dettagli sulle misure reali (nella sezione 4).

+0

la carta è interessante, ma se g1 è davvero per le applicazioni server con grandi cumuli, poi le misure in quella carta (tutti con meno di 1 g heap) sono probabilmente non molto utile. – Kevin

0

G1 è paragonato a CMS per lo più veloce grazie all'idea di multi-thread. Rispetto al Parallel-GC non so - potrebbe essere lo stesso. Ovviamente G1 è più in tempo reale a causa di non due tipi di thread in esecuzione (principalmente quello piccolo). È più veloce perché qualsiasi thread dovrebbe produrre lo stesso impatto sulle prestazioni. Anche la compattazione viene eseguita solo per la copia. Per maggiori dettagli uno sguardo più da vicino a questo: http://geekroom.de/java/java-expertise-g1-fur-java-7/

3

Abbiamo appena terminato una serie di test su CMS e G1, con l'ergonomia paragonabile. Questo è specifico del prodotto e molto soggettivo, e stiamo usando Java 6 (quindi G1 è nella build "preview") ma ...

Un sistema che utilizza CMS è il 20% più veloce di G1. Questo è stato testato con uno spazio di archiviazione da 8 GB e 12 GB, con uno spazio giovane da 1 GB e 1,5 GB (rispettivamente).

Ancora una volta: soggettivo, singolo sistema, carico specifico - ma questa è la nostra esperienza.

+1

Come si definisce "più veloce"? Maggiore produttività, minore latenza, cosa? – dty

+2

Il CMS ha fornito un throughput migliore e meno tempo di pausa stop-the-world. Non abbiamo verificato la reattività delle singole transazioni. –

+0

Grazie per la risposta – dty

2

Se si dispone di un'applicazione Web o di un'altra applicazione che gestisce molti client/req e il tempo di risposta è importante per l'utente, è consigliabile utilizzare CMS. questo test è stato trovato in 'prestazioni Java e scalabilità'