Hay un aspecto muy complicado de todos los recolectores de basura que puede pasar desapercibido en algunas descripciones, y es el "análisis completo" o "recopilación completa". Periódicamente, al azar, de forma intermitente deben escanear todos los objetos. los recolectores generacionales son mejores para posponer el escaneo completo y minimizar su duración, pero aún es necesario.
El coleccionista generacional se centrará en lo que a veces se llama el espacio de "vivero", pero eventualmente / inevitablemente tendrá que reunirse en el espacio de generación "más antiguo", causando un escaneo completo de la memoria.
Este escaneo completo es incompatible con casi todos los esquemas de almacenamiento en caché de memoria y (¡especialmente!) En el sentido de que casi todos los esquemas de almacenamiento en caché / virtualización de memoria fallarán en cualquier mejora de rendimiento en este caso.
Entonces, la respuesta clave a esta pregunta es con qué frecuencia se activa la exploración completa y qué tan "malo" es su efecto cuando ocurre, y si se puede tolerar. esto se reduce a una propiedad / pregunta más dependiente de la aplicación.
En otras palabras, para "la mayoría" de la operación del recolector, un caché probablemente lo ayudará (¡el caché y el espacio de guardería "joven" generalmente se superpondrán!), Pero hay un periódico, intermitente, eventual, inevitable, pesado, tal vez incluso un aumento "masivo" [degradante] en el rendimiento cuando el espacio de la "generación anterior" está completamente reunido y la "tasa de aciertos" de la memoria caché se degradará a muy mala, ya que muchos objetos fuera de él se recuperan en un bucle cerrado por completo ciclo de escaneo / recolección. En otras palabras, una discontinuidad periódica ineludible (donde las estimaciones estadísticas / promedios / tendencias de rendimiento, etc. son engañosas e inaplicables).
Lo que está surgiendo ahora son algunos nuevos sistemas de recopilación diseñados para combinar con los sistemas de administración de memoria subyacentes (almacenamiento en caché / virtualización). parece que los enfoques históricos que desacoplan por completo los sistemas separados de recolección de memoria, almacenamiento en caché y virtualización no funcionarán tan bien como los enfoques que combinan / integran / abordan los tres aspectos juntos.
Ver, por ejemplo, recolección de basura con reconocimiento de caché por Zhou y Demsky.