Latest posts on Сборка мусора в Python topichttps://python.su/forum/topic/635/2007-04-04T15:00:03+03:00Общий :: Python для экспертов :: Сборка мусора в Python
2007-04-04T15:00:03+03:00pythonwin4443кто сталкивался с утечками памяти в sqliobject, - пожалуйста, подскажите как решали проблему
Общий :: Python для экспертов :: Сборка мусора в Python
2007-04-04T09:08:13+03:00Striver4430Спасибо всем! Про Weak Reference не знал раньше, классная штука.
Общий :: Python для экспертов :: Сборка мусора в Python
2007-04-03T13:54:39+03:00pythonwin4400<strong>slivlen</strong>, <strong>OlDer</strong> спасибо за ссылки :)<br/>тоже хотел запостить - не успел …
Общий :: Python для экспертов :: Сборка мусора в Python
2007-04-03T13:52:08+03:00OlDer4399<blockquote><em>pythonwin</em><br/>а что это такое?</blockquote><a href="http://docs.python.org/lib/module-weakref.html">http://docs.python.org/lib/module-weakref.html</a><br/>Хотел удалить, но не буду - все-таки у меня ссылка правильнее ;-)
Общий :: Python для экспертов :: Сборка мусора в Python
2007-04-03T13:48:36+03:00slivlen4398<blockquote><em>pythonwin</em><br/>а что это такое?</blockquote><a href="http://www.python.org/doc/2.4.1/lib/module-weakref.html">Weak Reference</a>, <a href="http://www.python.org/doc/2.4.4/api/weakref-objects.html">http://www.python.org/doc/2.4.4/api/weakref-objects.html</a>
Общий :: Python для экспертов :: Сборка мусора в Python
2007-04-03T13:25:58+03:00pythonwin4395<blockquote><em>ofigetitelno</em><br/>Используйте викрефы, и будет вам счастье :)</blockquote>а что это такое?
Общий :: Python для экспертов :: Сборка мусора в Python
2007-04-03T13:07:37+03:00ofigetitelno4394Используйте викрефы, и будет вам счастье :)
Общий :: Python для экспертов :: Сборка мусора в Python
2007-04-02T15:12:04+03:00Striver4375создаём циклические ссылки<br/><br/>import gc<br/>>>> class A:<br/> pass<br/>>>> a=A()<br/>>>> b=A()<br/>>>> a.d=b<br/>>>> b.d=a<br/>>>> a<br/><__main__.A instance at 0x012963C8><br/>>>> b<br/><__main__.A instance at 0x012963F0><br/>>>> a.d<br/><__main__.A instance at 0x012963F0><br/>>>> b.d<br/><__main__.A instance at 0x012963C8><br/>>>> gc.set_debug(gc.DEBUG_LEAK)<br/>>>> del a<br/>>>> del b<br/>>>> gc.collect()<br/>gc: collectable <A instance at 012963C8><br/>gc: collectable <dict 01290030><br/>gc: collectable <A instance at 012963F0><br/>gc: collectable <dict 01290A50><br/>4<br/>>>> gc.garbage<br/><br/><br/>Как я понимаю, надо добиваться, чтобы подобный код в программе всегда приводил к пустой gc.garbage. Видимо, такую проверку надо будет в программу вставить…
Общий :: Python для экспертов :: Сборка мусора в Python
2007-04-02T14:44:07+03:00pythonwin4373посмотри модуль gc<br/><blockquote>Этот модуль предоставляет интерфейс к необязательному “сборщику мусора” (garbage<br/>collector, GC): возможность отключить его, настроить частоту работы, установить отла-<br/>дочные параметры, а также предоставляет доступ к “потерянным”1 объектам, найденным<br/>“сборщиком мусора”, которые, однако, не могут быть удалены. Так как “сборщик мусо-<br/>ра” дополняет механизм подсчета ссылок, уже используемый интерпретатором Python,<br/>Вы можете отключить его, если уверены, что программа не создает циклических ссы-<br/>лок. Автоматический сбор может быть отключен вызовом gc.disable(). Для поиска<br/>утечек памяти при отладке, следует вызвать gc.set_debug(gc.DEBUG_LEAK).</blockquote>
Общий :: Python для экспертов :: Сборка мусора в Python
2007-04-02T14:32:05+03:00Striver4372Кто-нибудь пытался с этим разбираться? Обычно это не нужно, но сейчас работаю с обёрткой над C++ классами (Ogre3D), получается несколько объёмных объектов, которые не очень понятно как удалять. По идее деструктор должен вызываться, если не одна переменная больше на объект не ссылается, но “терзают смутные сомнения”, вдруг там циклические ссылки где-то спрятались. Как я могу проверить, освобождается память или нет?