Почему методы сборки мусора Java и Python различаются?

На самом деле подсчет ссылок pythonista и стратегии, используемые garbage-collection JVM Sun, представляют собой python-shell разные типы алгоритмов сборки javax мусора.

Существует два основных pythonista подхода к отслеживанию мертвых garbage-collection объектов: отслеживание и java подсчет ссылок. При трассировке j2se сборщик мусора начинается gc с «корней» - таких вещей, как openjdk ссылки на стек, и отслеживает java все доступные (живые) объекты. Все, до python-interpreter чего нельзя добраться, считается pythonic мертвым. При подсчете ссылок pythonic каждый раз, когда ссылка python-shell изменяется, счетчик задействованных javax объектов обновляется. Любой pythonista объект, счетчик ссылок которого .java становится равным нулю, считается .java мертвым.

Практически со всеми j2se реализациями GC есть компромиссы, но jre трассировка обычно хороша oraclejdk для операций с высокой пропускной python способностью (т. Подсчет openjdk ссылок может выполняться garbage-collector небольшими порциями, но в core-java целом будет медленнее. Это java может означать меньшее количество j2se зависаний, но более низкую java производительность в целом.

Кроме jdk того, сборщик мусора с подсчетом core-java ссылок требует, чтобы детектор python-shell цикла очищал любые объекты jdk в цикле, которые не будут java обнаружены только их счетчиком pythonic ссылок. Perl 5 не имел детектора garbage-collection циклов в своей реализации java GC и мог вызвать утечку памяти, которая pythonic была циклической.

Также были javax проведены исследования, чтобы javax получить лучшее из обоих core-java миров (малое время паузы, высокая core-java пропускная способность): http://cs.anu.edu.au/~Steve.Blackburn/pubs/papers/urc-oopsla-2003.pdf

java

python

garbage-collection

2022-10-17T09:39:31+00:00