parallelgcthreads collector java performance garbage-collection

collector - ¿Rendimiento relativo del recolector de basura de basura de Java(G1) primero?



java configure garbage collector (5)

Acabamos de terminar una serie de pruebas sobre CMS y G1, usando ergonomía comparable. Esto es específico del producto y muy subjetivo, Y estamos usando Java 6 (por lo que G1 está en la compilación de "vista previa") pero ...

Un sistema que usa CMS es 20% más rápido que G1. Esto se probó con un espacio de almacenamiento de 8 GB y 12 GB, con espacio joven de 1 GB y 1,5 GB (respectivamente).

De nuevo, subjetivo, sistema único, carga específica, pero esa es nuestra experiencia.

¿Alguien sabe de los parámetros de rendimiento del nuevo Garbage First (G1) Garbage Collector de Java (en comparación con los GC "antiguos")?

En términos de tiempos de pausa de GC, Sun afirma que G1 a veces es mejor y otras veces peor que CMS. Si bien el colector G1 tiene éxito en limitar el tiempo total de pausa, todavía es solo un colector suave en tiempo real. En otras palabras, no puede garantizar que no afectará la capacidad de los subprocesos de la aplicación para cumplir sus plazos, todo el tiempo. Sin embargo, puede operar dentro de un conjunto bien definido de límites que lo hacen ideal para sistemas en tiempo real que necesitan mantener un rendimiento de alto rendimiento.

Me gustaría ver las medidas reales de rendimiento y latencia para los recopiladores de CMS (barrido de marca concurrente) de Java y G1 (basura primero).


El artículo científico original ( "Garbage-First Garbage Collection" de Detlefs, Flood, Heller y Printezis) contiene algunos detalles sobre las medidas reales (en la sección 4).


Este artículo de Taranfx (2009-08-29) compara el rendimiento de Java 5, 6 y 7 en 4 puntos de referencia simples.


G1 se compara con CMS en su mayoría más rápido debido a la idea de varios hilos. Comparado con el Parallel-GC, no lo sé, podría ser el mismo. Por supuesto, G1 es más en tiempo real debido a que no hay dos tipos de subprocesos en ejecución (la mayoría pequeños). Es más rápido porque cualquier hilo debe producir el mismo impacto en el rendimiento. Incluso la compactación se realiza sólo en la copia. Para más detalles, eche un vistazo más de cerca a esto: http://geekroom.de/java/java-expertise-g1-fur-java-7/


Si tiene una aplicación web u otra aplicación que maneje muchos clientes / necesidades, y el tiempo de respuesta es importante para usted, entonces es mejor que use CMS. Esta prueba se encontró en ''Rendimiento y escalabilidad de Java''