Что GIL Python имеет отношение к сборщику "мусора"?

Я просто видел, что этот раздел документации Ненагруженной Ласточки подошел на Hacker News. В основном это - инженеры Google, говорящие, что они не оптимистичны относительно удаления GIL. Однако кажется, как будто существует дискуссия о сборщике "мусора", вкрапленном этим разговором о GIL. Кто-то мог объяснить отношение ко мне?

11
задан kennytm 26 October 2010 в 17:32
поделиться

3 ответа

Я только что нашел здесь другую точку зрения на эту тему: http://renesd.blogspot.com/2009/12/python-gil-unladen-swallow-reference.html

1
ответ дан 3 December 2019 в 06:21
поделиться

По-настоящему короткая версия заключается в том, что в настоящее время python управляет памятью с помощью подсчета ссылок + схемы сборщика циклов меток и циклов развертки, оптимизированной для задержки (вместо пропускной способности).

Это нормально, когда есть только один изменяющийся поток, но в многопоточной системе вам необходимо синхронизировать все моменты времени, когда вы изменяете счетчики ссылок, иначе вы можете иметь значения, которые «проваливаются сквозь трещины», и синхронизация примитивы довольно дороги на современном оборудовании.

Если бы счетчики ссылок менялись не так часто, это не было бы проблемой, но почти каждая отдельная операция, выполняемая в cpython, может привести к изменению счетчика ссылок где-то, поэтому можно выбрать либо GIL, либо выполнить счетчик ссылок каким-либо синхронизации (и тратить на синхронизацию буквально все свое время),

17
ответ дан 3 December 2019 в 06:21
поделиться

Ответ Tuna-Fish в основном покрывает это. Если вам нужны более подробные сведения, было обсуждение того, как удалить GIL, не оказывая большого влияния на здесь подсчет ссылок: http://mail.python.org/pipermail /python-ideas/2009-October/006264.html[1260 impression

1
ответ дан 3 December 2019 в 06:21
поделиться
Другие вопросы по тегам:

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