Сборщик мусора (GC) собирает только объекты или также перезаписывает данные, которые он хранит? - PullRequest
0 голосов
/ 11 октября 2019

Сборщики мусора (GC) HotSpot

При запуске Сборщики мусора (GC) HotSpot он собирает только объекты или перезаписывает сохраненные данные для предотвращения сброса памяти?

1 Ответ

0 голосов
/ 11 октября 2019

Это довольно широкий вопрос, потому что есть много разных алгоритмов для GC.

Давайте возьмем Hotspot и G1 в качестве примера.

Незначительный GC копирует объекты из пространства Eden выжившемупространство, между оставшимися в живых пространствами и продвигает объекты к старому поколению (в зависимости от возраста объекта). Во всех этих случаях память, используемая этими объектами, будет впоследствии перезаписана, но не освобождена.

Главный GC будет копировать объекты из одной области (которая является логической областью памяти) в другую в компактные объекты, исключаяфрагментация. Опять же, память, используемая этими объектами, будет перезаписана в будущем.

Некоторые сборщики, такие как Zing from Azul (на кого я работаю), освобождают неиспользуемую память, когда использование кучи сокращается, а все выделенные страницы недольше требуется. Однако не все GC делают это. Это возвращает страницы памяти в ОС, позволяя использовать их для других приложений.

...