Python'da (2.7) bir bellek sızıntısı izlemeye çalışıyorum. gc.get_referrers'ı buldum, ancak çıkışı anlamıyorum. (Ben avcılık parçası olarak yarattık listesi için hariç tüm referansların kurtulmak olmalı) dying_node
silindikten sonra, benim kodunda vardır:gc.get_referrers öğesini anlama
> done dying: 4
> referrers:
> [<__main__.Node instance at 0x104e53cb0>, <__main__.Node instance at 0x104e53b90>, <__main__.Node instance at 0x104e53b00>, <__main__.Node instance at 0x104e53d40>, <__main__.Node instance at 0x104e53ab8>, <__main__.Node instance at 0x104e53bd8>, <__main__.Node instance at 0x104e53a70>, <__main__.Node instance at 0x104e53c20>, <__main__.Node instance at 0x104e53c68>, <__main__.Node instance at 0x104e53b48>]
> [<__main__.Node instance at 0x104e53c20>, <__main__.Node instance at 0x104e53ab8>, <__main__.Node instance at 0x104e53c68>, <__main__.Node instance at 0x104e53a70>, <__main__.Node instance at 0x104e53cb0>, <__main__.Node instance at 0x104e53b00>, <__main__.Node instance at 0x104e53d40>, <__main__.Node instance at 0x104e53b90>, <__main__.Node instance at 0x104e53b48>, <__main__.Node instance at 0x104e53bd8>]
> <frame object at 0x104516300>
: çıkışını verir
gc.collect()
print "done dying: ", getrefcount(dying_node) #note, includes the reference from getrefcount
referrers = gc.get_referrers(dying_node)
print "referrers: "
for referrer in referrers:
print referrer
Sanırım bu, bu düğüme ve çerçeve nesnesine başvuran iki Node
s listesi var demektir. Çerçeve nesnesinin baktığım dying_node
adı olduğunu farz ediyorum. Listelerden biri avımda bana yardım etmek için yarattığım bir liste olacaktı. Ama diğer listenin ne olacağını anlamanın bir yolu var mı?