Pelo que me lembro, os coletores de cópias devem ser amigáveis para paginação, pois o rastreamento copiando tende a melhorar a localidade das referências de ponteiro. Isso tem um efeito positivo no programa (mutador) que causará menos falhas de página ao seguir os links e também melhorará o próximo ciclo de coleta, pois o rastreamento também causará menos falhas de página. A agenda de rastreamento (quais ponteiros devem ser processados primeiro) pode ter um impacto na eficácia para melhorar a localização dos dados. Isso pode ser aprimorado medindo estatísticas sobre o número de acesso a diferentes ponteiros em diferentes tipos de células.
Agora, se você considerar um coletor de rastreamento em geral, geralmente deverá manter uma estrutura que controla os ponteiros que ainda não foram rastreados. Pode ser possível organizar essa estrutura para que todos os ponteiros em espera apontando na mesma página sejam mantidos juntos (embora isso possa exigir mais espaço, em alguns casos, dependendo das técnicas disponíveis para manter a lista desses ponteiros). Uma política possível é sempre rastrear primeiro o maior conjunto de ponteiros em espera apontando para a mesma página, quando não houver ponteiro em espera para as páginas na memória.
Em relação à pergunta do terceiro parágrafo, que foi adicionada após a resposta, a coleta de cópias é novamente uma resposta. O sistema operacional pode reduzir o número de páginas físicas alocadas no momento da coleta, pois as páginas são completamente liberadas. Com um coletor de marca e varredura, o evento de uma página inteira ficar livre é provavelmente muito mais raro, portanto não vale um machanismo específico a ser levado em consideração.
Esse tipo de idéia é natural e provavelmente é descrito em alguns dos documentos. Mas não me lembro de imediato. Eu acho que os primeiros artigos sobre o Lisp GC contêm algumas dessas idéias (como: carro ou cdr devem ser seguidos primeiro?).
As boas notícias nesta função de coleção de cópias também são que a paginação é amigável para copiar a coleção, pois aumenta o espaço de armazenamento disponível. Lembre-se de que o coletor de cópias requer, em princípio, o dobro do espaço usado para o armazenamento de dados real. Agora, o efeito da paginação depende também do espaço de endereço da máquina e da memória física disponível. No computador antigo, a memória física era muito menor que o espaço de endereço disponível, de modo que a paginação era realmente um bônus de espaço, permitindo políticas como copiar o GC. Mesmo quando o espaço físico é tão grande quanto o espaço de endereço, convém compartilhá-lo, para que o processo usando um GC tenha menos espaço de endereço sem paginação (consulte Paginação) Essas observações são um pouco substituídas pelo uso de coletores geracionais. Eles geralmente usam a coleção de cópias para a geração jovem precisamente por causa dessas qualidades e porque a geração jovem tem vida curta.
Então você tem todas as interações do GC geracional com o sistema de cache, que foram discutidas em uma pergunta anterior: Os coletores de lixo geracionais são inerentemente compatíveis com o cache?
Para obter mais informações sobre esse problema, eu pesquisaria na web, por exemplo, as palavras-chave coleta de lixo e localidade .