Nell'algoritmo mark-sweep-compact garbage collection devi spostare il mondo quando si riposizionano oggetti perché il grafico di riferimento diventa incoerente e devi sostituire i valori di tutti i riferimenti che puntano all'oggetto.
E se avessi una tabella hash con ID oggetto come chiave e puntatore come valore, e i riferimenti puntassero a detto ID invece dell'indirizzo dell'oggetto ... allora la correzione dei riferimenti richiederebbe solo la modifica di un valore e la pausa sarebbe necessaria solo se l'oggetto viene tentato di essere scritto durante la copia ...
C'è un errore nella mia linea di pensiero?