C'è un aspetto molto complicato di tutti i raccoglitori di immondizia che potrebbe essere sorpreso in alcune descrizioni, e cioè la "scansione completa" o "raccolta completa". Periodicamente, a caso, a intermittenza devono scansionare tutti gli oggetti. i collezionisti generazionali sono migliori nel posticipare la scansione completa e nel ridurne al minimo la durata, ma è ancora necessario.
Il collezionista generazionale si concentrerà su quello che a volte viene chiamato spazio "nursery", ma alla fine / inevitabilmente dovrà raccogliere sullo spazio di generazione "più vecchio", causando una scansione completa della memoria.
Questa scansione completa è incompatibile con quasi tutti gli schemi di memorizzazione nella cache della memoria e (soprattutto!) Nel senso che quasi tutti gli schemi di memorizzazione nella cache / virtualizzazione falliranno / dovranno fallire gravemente in qualsiasi miglioramento delle prestazioni in questo caso.
Quindi la risposta chiave a questa domanda è la frequenza con cui viene attivata la scansione completa, e quanto "cattivo" è il suo effetto quando si verifica e se può essere tollerato. questo si riduce a una domanda / proprietà più dipendente dall'applicazione.
In altre parole per "la maggior parte" dell'operazione del raccoglitore, una cache probabilmente lo aiuterà (la cache e lo spazio "giovane" della scuola materna si sovrappongono generalmente!), Ma c'è un periodico, intermittente, eventuale, inevitabile, pesante, forse anche un picco "degradante" delle prestazioni quando lo spazio "vecchia generazione" è completamente raccolto e il "tasso di hit" della cache si ridurrà in pessimo dato che molti oggetti al di fuori di esso vengono tutti presi in un ciclo stretto dal pieno ciclo di scansione / raccolta. In altre parole, una discontinuità periodica inevitabile (in cui stime / medie / tendenze delle prestazioni ecc. Sono fuorvianti e inapplicabili).
Ciò che sta emergendo sono alcuni nuovi sistemi di raccolta progettati per integrarsi con i sistemi di gestione della memoria sottostanti (memorizzazione nella cache / virtualizzazione). sembra che gli approcci storici che disaccoppiano completamente i sistemi separati di raccolta della memoria, memorizzazione nella cache e virtualizzazione non funzioneranno così come gli approcci che combinano / integrano / affrontano tutti e tre gli aspetti insieme.
Vedi ad esempio cache garbage collection di Zhou e Demsky.