образуют циклы, то зачем нужен такой gc?
То это уже вовсе не gc получается.
мб речь про всякие systems boundaries, типа JNI, где гц не поможет, если не задиспоузить. и есть "лики", с которыми гц не поможет, например в жаве какие-нибудь статик коллекции/кэши
Да не обязательно статик, если в достижимую коллекцию постоянно запихивать объекты которые уже не нужны, то будет лик. Ещё кстати в языках с гц как правило нужны особые средства для работы с ресурсами, которые отличны от памяти, потому что гц может вызвать финализатор при удалении в непредсказуемый момент времени, либо вообще не вызвать.
Но такой лик - это довольно грубая ошибка.
Да, boundaries - это тоже проблема, потому что gc может и живые объекты по памяти перемещать для дефрагментации кучи. Поэтому ему надо говорить, что определённые объекты, ссылка на которых ушла в нативный код, перемещать не надо.
Обсуждают сегодня