[Java] Реализации GC в VM
тут почитай.
Правда, там как-то хреново написано
Вот
Все гораздо сложнее, чем просто подсчет ссылок. В 1.5 используется т.н. алгоритм mark sweep:Правда, там как-то хреново написано
для расширения собственной эрудиции прошу выложить ссылку на описание принципа (желательно подробное) работы .Net GC
Идея принципа работы GC в .Net содрана с какой-нибудь известной реализации GC в Java?Блин, алгоритмы GC изобретают не в Sun или Microsoft. Все эти примитивные Mark&Sweep уже сто лет как известны.
Слышал про real-time Java VM. Как там работает GC, ведь время его работы жестко ограничено? Что происходит, если GC "не успевает"?
Real time GC просто выполняют тоже самое, что обычные GC, только их работа размазана во времени, если говорить по простому. Например, алгоритм, где сначала объекты помечаются, а потом непомеченные удаляются, легко приспособить для real time. Есть и более сложные подходы, в этой книге, в частности, описаны:
Garbage Collection Algorithms for Automatic Memory Management , Richard Jones, Rafael Lins.
Оставить комментарий
aleks058
В .Net устройство сборщика мусора я себе вполне представляю.Упрощенно примерно так: в определенные моменты процесс GC просматривает все объекты и если находит графы объектов, не соединенные с корневыми объектами, удаляет их.
А как устроен GC в распространенных реализациях VM Java?
Бывают ли со счетчиками ссылок и как там борются с циклическими ссылками?
Идея принципа работы GC в .Net содрана с какой-нибудь известной реализации GC в Java?
Слышал про real-time Java VM. Как там работает GC, ведь время его работы жестко ограничено? Что происходит, если GC "не успевает"?