参考计数之谜

时间:2018-07-23 15:55:13

标签: python-2.7 garbage-collection

import gc

for i in range(10):
    gc.collect()
    if True:
        all_objects = gc.get_objects()
        print "Number of objects =", len(all_objects)
    else:
        print "Number of objects =", len(gc.get_objects())

使用True块时,每次迭代(第一次迭代除外)的对象数都会增加1。如果使用False块,则不会。 get_objects函数调用的结果有一个引用(由all_objects引用),但是在下一次迭代中,all_objects绑定到一个新结果。到那时,我看不到谁仍在引用第一个结果,因此我不清楚为什么对象数量持续攀升。如果是gc本身持有引用,那么我看不到gc调试内存泄漏(如果它本身引起内存泄漏)有什么用。

0 个答案:

没有答案