Sé que esta publicación está un poco pasada de moda, pero he realizado algunas investigaciones interesantes y quiero asegurarme de que esto se actualice.
Deterministic GC puede ser ofrecido por Azul Systems "Zing JVM" y JRocket. Zing viene con algunas características adicionales muy interesantes y ahora está "100% basado en software" (puede funcionar en máquinas x86). Es sólo para Linux en este momento, aunque ...
Precio: Si usted está en Java 6 o antes de que Oracle está cargando una elevación del 300% y forzando el apoyo a esta capacidad ($ 15.000 por procesador & $ 3.300 soporte). Azul, por lo que he oído, ronda los $ 10,000 - $ 12,000, pero se cobra por máquina física, no por procesador central. Además, el proceso se gradúa por volumen, por lo que cuantos más servidores utilice, más profundo será el descuento. Mis conversaciones con ellos mostraron que eran bastante flexibles. Oracle es una licencia perpetua y Zing se basa en suscripciones ... pero si hace los cálculos y agrega otras características que tiene Zing (vea las diferencias a continuación).
Puede reducir los costos pasando a Java 7, pero luego incurre en costos de desarrollo. Teniendo en cuenta la hoja de ruta de Oracle (una nueva versión cada 18 meses más o menos), y el hecho de que históricamente solo ofrecen las últimas versiones más antiguas de Java SE de forma gratuita, se espera que el horizonte "libre" sea de 3 años desde la GA inicial liberar si hay alguna versión principal. Dado que las versiones iniciales de GA generalmente no se adoptan en producción durante 12-18 meses, y que mover los sistemas de producción a nuevas versiones principales de Java normalmente conlleva costos importantes, esto significa que las facturas de soporte de Java SE comenzarán a aparecer entre 6 y 24 meses después de la implementación inicial. .
Diferencias notables: JRocket todavía tiene algunas limitaciones de escalabilidad en términos de RAM (aunque mejorado desde hace días). Puede mejorar sus resultados con un poco de ajuste. Zing ha diseñado su algoritmo para permitir la compactación continua y concurrente (no se detienen las pausas mundiales y no se requiere "ajuste"). Esto permite a Zing escalar sin un techo de memoria teórico (están haciendo montones de más de 300 GB sin sufrir detener el mundo o estrellarse). Hable sobre un cambio de paradigma (piense en las implicaciones para los grandes datos).Zing tiene algunas mejoras realmente interesantes para el bloqueo, lo que le proporciona un rendimiento increíble con un poco de trabajo (si está sintonizado, puede alcanzar un promedio de menos de milisegundos). Finalmente, tienen visibilidad de clases, métodos y comportamiento de subprocesos en la producción (sin gastos generales). Estamos considerando esto como un gran ahorro de tiempo al considerar las actualizaciones, los parches y las correcciones de errores (por ejemplo, filtra & bloqueos). Esto prácticamente puede eliminar la necesidad de recrear muchos de los problemas en Dev/Test.
Enlaces a JVM datos que encontraron:
JRocket Deterministic GC
Azul Presentation - Java without Jitter
Azul/MyChannels Test
determinista = determinista. Un sistema que no es de GC tiene un tiempo determinista cuando solicita que se libere la memoria, pero no necesariamente una cantidad de tiempo determinista que tomará. –
Pregunta relacionada: [¿Malloc es determinista?] (Http://stackoverflow.com/questions/8171006/is-malloc-deterministic) (no lo es). – sleske