Этот вопрос является продолжением моей предыдущей Java GC вопрос: Java Garbage Collector clarificationJava GC Stop и скопировать
Этот вопрос также относится к тому же статье.
Я немного запутался в том, почему так часто используется метод дефрагментации кучи объектов stop and copy. Да, он дефрагментирует кучу, однако кажется, что есть тонны накладных расходов, потому что в основном вы сокращаете общее количество кучи пополам. Также вам нужно скопировать ВСЕ живые объекты, когда одна половина закончилась.
Помимо дефрагментации существует ли какая-либо другая фундаментальная причина, по которой «остановить и скопировать» лучше, чем сказать «отметка и развертка»?
Вы понимаете, что статья с 1996 года, и мир с тех пор много переехал, верно? Взгляните на документы Sun Hotspot, в частности на «сборку мусора», чтобы узнать, где сейчас происходит (у меня нет ссылки, но Google делает это). – Anon
Дефрагментация не обязательно сокращает общее количество кучи пополам. Некоторые реализации могут это сделать. Также он не обязательно копирует * все * живые объекты. –
Хорошо, поэтому я просто искал «сборщик мусора», но я действительно не понимаю механизм? Может кто-нибудь дать быстрое объяснение? – Albinoswordfish