Há um aspecto muito complicado de todos os coletores de lixo que pode ser encoberto em algumas descrições, e é a "verificação completa" ou "coleta completa". Periodicamente, aleatoriamente, intermitentemente, eles devem verificar todos os objetos. coletores geracionais são melhores em adiar a varredura completa e minimizar sua duração, mas ainda é necessário.
O coletor de gerações se concentrará no que às vezes é chamado de espaço "berçário", mas eventualmente / inevitavelmente terá que se reunir no espaço "mais antigo" da geração, causando uma verificação completa da memória.
Essa varredura completa é incompatível com quase todos os esquemas de cache de memória e (especialmente!) De virtualização, no sentido de que quase todos os esquemas de cache / virtualização de memória falharão / devem falhar gravemente em qualquer melhoria de desempenho nesse caso.
Portanto, a resposta principal para essa pergunta é com que freqüência a verificação completa é acionada e qual o efeito "ruim" quando ocorre e se pode ser tolerado. isso se resume a uma propriedade / questão mais dependente do aplicativo.
Em outras palavras, para "a maior parte" da operação do coletor, um cache provavelmente o ajudará (o cache e o espaço "jovem" geralmente se sobrepõem!), Mas há um período periódico, intermitente, eventual, inevitável, pesado, talvez até um pico "maciço" [degradante] de desempenho quando o espaço da "velha geração" seja totalmente coletado e a "taxa de acertos" do cache se degradará em muito ruim, pois muitos objetos fora dele são todos buscados em um loop restrito ciclo de varredura / coleta. Em outras palavras, uma descontinuidade periódica inevitável (onde estimativas / médias / tendências estatísticas de desempenho etc. são enganosas e inaplicáveis).
O que está surgindo agora são alguns novos sistemas de coleta projetados para serem combinados com os sistemas de gerenciamento de memória subjacentes (armazenamento em cache / virtualização). parece que as abordagens históricas que dissociam completamente os sistemas separados de coleta de memória, armazenamento em cache e virtualização não terão um desempenho tão bom quanto as abordagens que combinam / integram / abordam os três aspectos juntos.
Veja, por exemplo, coleta de lixo com reconhecimento de cache por Zhou e Demsky.