Devriez-vous rassembler la première génération en premier dans une collecte complète des déchets?

StackOverflow https://stackoverflow.com/questions/219540

  •  03-07-2019
  •  | 
  •  

Question

J'écris un programme qui contient un ramasse-miettes générationnel. Il n'y a que deux générations. Ce que je me demande, c’est: lors d’une collecte complète, puis-je gagner quelque chose (en termes de performances) en collectant d’abord les objets les plus jeunes, en promouvant les survivants auprès de l’ancienne génération, puis en rassemblant l’ancienne génération, ou devrais-je tout simplement ramasser les déchets un balayage? Je ne suis pas sûr de la façon dont les gens le font habituellement.

J'utilise maintenant la méthode en deux étapes, car elle était un peu plus simple à mettre en œuvre, mais une méthode en une étape serait peut-être plus efficace?

Le ramasse-miettes ne copie pas, si cela compte.

Était-ce utile?

La solution

Cela dépend de la fréquence à laquelle vous promouvez les survivants. Si vous en faites souvent la promotion, il semblerait que vous fassiez beaucoup mieux en faisant du CPG en un seul passage. Si vous ne le faites pas, alors il semblerait qu'ils seront assez similaires.

Quoi qu'il en soit, il semble que vous fassiez un peu de travail redondant en deux étapes. Par exemple, toute personne qui obtient une promotion est intrinsèquement contrôlée deux fois (une fois aussi jeune que vieux). Encore une fois, si cela ne se produit pas trop souvent, je me contenterais de la méthode plus simple en deux étapes (puisque vous l'avez déjà et que vous avez peu à gagner).

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top