170 похожих чатов

Привет. Читаю про gc в 3.7 (https://habr.com/ru/post/417215/). Пишут, что в

силу того, что ref counting не умеет в разрешение циклов, юзается ещё сборщик с поколениями.
1. Почему не проще было научиться разбираться с циклами, чем gc завозить?
2. Если gc можно отключить, то объекты в циклах будут утекать? Какой смысл с отключения тогда вообще?

8 ответов

3 просмотра

1. Кому научиться? Конечным разработчикам? Интерпретатору? Интерпретатор вот и научился решать вопросы циклических ссылок при помощи gc. 2. Если gc отключать, то да объекты в циклах будут утекать. Смысл в том что если не плодить циклических ссылок, ничего утекать не будет. В некоторых случаях это может быть оправдано: повышение производительности за счет увеличения расходов и сложности разработки.

Vanya-Khodor Автор вопроса
Alex
1. Кому научиться? Конечным разработчикам? Интерпр...

1. Интерпретатору. Насколько я знаю, в Kotlin/Native для борьбы с циклами не завозили никакого gc (до новой mm), а разбирались с циклами окольными путями. И вроде как норм себе жили. 2. Понял. То есть либо мы гарантируем приложением, что не возникает, либо не чистим. Эдакий monotonic allocator из плюсов.

Vanya Khodor
1. Интерпретатору. Насколько я знаю, в Kotlin/Nati...

Котлин юзает джава машину же. Там в принципе был периодический Гц, не?

Vanya-Khodor Автор вопроса
Vanya Khodor
1. Интерпретатору. Насколько я знаю, в Kotlin/Nati...

1. Видимо, понял. Походу тут тоже с циклами "окольными путями", а gc тут ради поколений.

Vanya-Khodor Автор вопроса

Это другое. Есть Kotlin/Native, который не на jvm живёт. И у него refcounting юзается. Но год назад где-то jetbrains решили норм tracing gc завезти.

Vanya Khodor
Это другое. Есть Kotlin/Native, который не на jvm ...

https://kotlinlang.org/docs/native-faq.html What is Kotlin/Native memory management model? Kotlin/Native provides an automated memory management scheme, similar to what Java or Swift provides. The current implementation includes an automated reference counter with a cycle collector to collect cyclical garbage. звучит очень похоже на то как управление памятью реализовно в питоне.

Vanya-Khodor Автор вопроса
Alex
https://kotlinlang.org/docs/native-faq.html What ...

Да. Видимо недочитал. Спасибо. Ну в целом логично, что заюзать поколения почти наверняка выгоднее, чем этого не делать.

Vanya Khodor
1. Интерпретатору. Насколько я знаю, в Kotlin/Nati...

В K/N отложенный подсчёт ссылок с trial-deletion для сбора циклов. В питоне тоже вариант trial-deletion (https://devguide.python.org/garbage_collector/), а поколения там видимо как альтернатива эвристикам по определению объектов, потенциально входящих в циклы, иначе приходилось бы каждый раз все объекты обходить, и это бы почти ничем не отличалось от трассирующих сборщиков мусора

Похожие вопросы

Обсуждают сегодня

я не магистр хаскеля, но разве не может лейзи тип конвертнуться в не-лейзи запросив вычисление содержимого прям при инициализации?
deadgnom32 λ madao
96
читать файл максимально быстро? странный вопрос))
zamtmn
53
How to create an OS in C? what to study?
Linus
18
тоесть, указав return eax, сгенерируется никому ненужная инструкция mov eax,eax ?
Aiwan \ (•◡•) / _bot
24
Всем доброго вечера! Хочу поделиться своим злоключением с человеком, который, как оказалось сюда тоже скидывал свое резюме. Жаль, что я вашу группу не нашел раньше… человек ки...
Роман Ахмедзянов
4
Компания Elif ищет менеджера проектов, который будет заниматься поиском и ведением новых проектов. Прежде чем приступить к работе, вам нужно пройти наш недельный курс, где вы ...
Elif
5
Привет, кто может сделать юзербота с апи? Задачи: - создавать группы - создавать каналы - задавать для созданных каналов аватарку или эмоджи, имя группы - добавлять в группы...
Lencore
11
Вопрос вроде правильно, но что надо сделать, чтоб текст был виден нормально ? ghci> TE.decodeUtf8 $ TE.encodeUtf8 "test - проба" "test - \1087\1088\1086\1073\1072"
Fedor
7
а зачем этот вопрос для удаления из чата?
Mёdkinson Medvezhkin
63
Кто может подсказать? Я преобрпзовал изображение в бинарное(у меня установлен трекбар который при установленном значении меняет пиксели на белый если меньше и чёрный если боль...
Константин VS
5
Карта сайта