Simplemente curioso. Escuché algo sobre el nuevo G1GC que aborda ese problema de latencia. No puedo/no quiero usar RTSJ.¿Hay un GC en Java que no introduce latencia (stop-the-world) quizás ejecutando el 100% al mismo tiempo?
Gracias de antemano
Simplemente curioso. Escuché algo sobre el nuevo G1GC que aborda ese problema de latencia. No puedo/no quiero usar RTSJ.¿Hay un GC en Java que no introduce latencia (stop-the-world) quizás ejecutando el 100% al mismo tiempo?
Gracias de antemano
No creo que haya ningún recolector de basura de pausa cero. Pero en general, un colector de baja pausa como CMS hará el trabajo.
Los problemas con pausas y reducción de pausa son los siguientes:
Un régimen de colección cero pausa (o casi cero pausa) significativamente aumenta los gastos generales para la ejecución normal del programa. Esto es particularmente cierto con lenguajes multiproceso como Java.
Los esquemas que usan un subproceso o subprocesos dedicados para hacer la recolección de elementos no utilizados se pueden inundar si la aplicación genera demasiada basura.
Cualquier esquema de GC le dará un rendimiento deficiente si los patrones de uso de la memoria de la aplicación son demasiado "grumosos" y/o no tiene suficiente memoria física y virtual.
Hay GC sin pausa ([Azul's] (http://www.azulsystems.com/products/zing/faq#pauseless) por ejemplo, que se entiende como una JVM del lado del servidor) pero definitivamente no en Oracle JVM. – ecle
Lectura interesante que encontré aquí con comentarios que discuten el problema en los GC pausados / en pausa: http://blogs.forrester.com/john_r_rymer/10-06-21-why_im_worried_about_javas_future – ecle
@eee - Lo rocé. Pero no entiendo de qué está hablando con su restricción de 2Gb por JVM. Las JVM HotSpot de 64 bits existen desde hace mucho tiempo ... –
Parece que usted está buscando la CMS GC — concurrent mark sweep.
(fuente: https://java.sun.com/j2se/reference/whitepapers/memorymanagement_whitepaper.pdf, p.12)
de diciembre de Actualización de 2015: que podría estar interesado en "pauseless" GC de Azul. Ver Explanation of Azul's "pauseless" garbage collector para más.
La última vez que revisé, incluso CMS tenía latencias de detener el mundo. – JohnPristine
Hm. AFAIK, todos los GC de JVM tienen esto: no estoy seguro de que sea siquiera teóricamente posible escribir un GC que no tenga _any_ stop-the-world. El CMS GC solo tiene un _shorter_ stop-the-world. –
+1 buen diagrama. – Kevin
Puede probar la última recolección de basura G1 en el JDK 7.
Tal vez usted debe buscar en disco en tiempo real de nivel militar de Java por Aonix llama PERC que utiliza la tecnología de recolección de basura determinista http: // www .atego.com/products/aonix-perc/more on Java en tiempo real http://en.wikipedia.org/wiki/Real_time_Java – ecle