Cette question fait suite à ma précédente question Java GC: Java Garbage Collector clarificationJava GC Arrêtez et copiez
Cette question se réfère également au même article.
Je suis un peu confus sur pourquoi la méthode stop and copy pour défragmenter l'allocation de tas d'objets est si couramment utilisée. Oui, il défragmente le tas, mais il semble qu'il y a des tonnes de frais généraux parce que, fondamentalement, vous réduisez la quantité totale de la taille du tas de moitié. De plus, vous devez copier TOUS les objets en direct lorsque la moitié de l'espace est insuffisant.
À part la défragmentation, y a-t-il une autre raison fondamentale pour laquelle «stop and copy» est mieux que «mark and sweep»?
Vous vous rendez compte que cet article date de 1996 et que le monde a beaucoup évolué depuis? Jetez un coup d'œil sur les documents de Sun Hotspot, en particulier sur «l'optimisation de la collecte des ordures», pour voir où en sont les choses aujourd'hui (je n'ai pas de lien pratique, mais Google le fait). – Anon
La défragmentation ne réduit pas nécessairement la taille totale du tas de moitié. Certaines implémentations peuvent le faire. De plus, il ne copie pas nécessairement tous les objets vivants. –
Ok donc je viens de googler 'tuning garbage collection' mais je ne comprends pas vraiment le mécanisme? Quelqu'un pourrait-il donner une explication rapide? – Albinoswordfish