Python 多线程程序内存消耗增加,但对象';大小和引用计数似乎不相同

Python 多线程程序内存消耗增加,但对象';大小和引用计数似乎不相同,python,multithreading,memory-leaks,garbage-collection,Python,Multithreading,Memory Leaks,Garbage Collection,我正在运行一个多线程程序,它运行的时间越长,消耗的内存就越多 我试图通过检查对象大小及其引用计数随时间的变化来检查发生了什么: total_obj_size = sum([sys.getsizeof(i) for i in gc.get_objects()]) total_ref_count = sum([sys.getrefcount(i) for i in gc.get_objects()]) leaking_obj_count = objgraph.get_leaking_objects(

我正在运行一个多线程程序,它运行的时间越长,消耗的内存就越多

我试图通过检查对象大小及其引用计数随时间的变化来检查发生了什么:

total_obj_size = sum([sys.getsizeof(i) for i in gc.get_objects()])
total_ref_count = sum([sys.getrefcount(i) for i in gc.get_objects()])
leaking_obj_count = objgraph.get_leaking_objects()
但它们保持不变,随着时间的推移没有增长。 下一步我该去哪里

gc.get_objects()是从所有线程返回对象,还是只从运行它的线程返回对象?(我从主线程运行它)


如果线程被终止,内存消耗将恢复正常(因此我可以每x秒重新启动一次),但是有没有办法了解为什么内存消耗会随着gc、objgraph或其他模块的增加而增加?

您的线程在做什么?您是否尝试过在单线程环境中分析任务以查看内存增长的位置?