LINUX.ORG.RU

Циклические ссылки при подсчете ссылок

 ,


0

1

По мотивам http://books.aidanf.net/learn-swift/memory_management стало интересно, почему в ARC не сделали автоматическую систему по отлову циклических ссылок?

Я конечно в курсе про weak, который нужен, чтобы помочь рантайму с циклическими ссылками. Но почему они не реализовали автоматическую систему для работы с ними? Это сильно затратно и будет ни чем не лучше GC?

Вообще, есть какие-нибудь интересные реализации управлением памяти через подсчет ссылок, которые могут обнаруживать и циклические ссылки?

★★★★★

Последнее исправление: foror (всего исправлений: 1)
Ответ на: комментарий от umren

Для игр, звука, графики и прочего это неадекватно.

С чего бы это? Освобождение памяти из-под любой структуры ощутимого размера ест времени больше на порядок.

anonymous
()
Ответ на: комментарий от anonymous

С-но любая программа которая выделяет и освобождает большое количество памяти в случае GC будет работать сильно быстрее чем RC.

Ох уж эти сказки, ох уж эти сказочники. Перемещающий GC у них оказывается ничего и не перемещает, ссылки не обновляет, ничего не дефрагментирует, не работает с unmanaged кодом и т.д. Только тупо знай себе инкрементирует указатель и все получается зашибись. Особенно, когда выделяется и освобождается большое кол-во памяти.

anonymous
()
Ответ на: комментарий от anonymous

Перемещающий GC у них оказывается ничего и не перемещает, ссылки не обновляет, ничего не дефрагментирует

При подходящем паттерне выделения памяти - именно так все и происходит в реальности, да.

anonymous
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.