不知何故,我的Python程序佔用越來越多的內存,因爲它的運行(VIRT和RES)列的「頂部」命令不斷增加。Python內存泄漏跟蹤?
但是,我仔細檢查了我的代碼,我確信沒有內存泄漏(沒有使用任何字典,也沒有全局變量,它只是多次調用子方法的主要方法) )。
我用heapy通過
from guppy import hpy;
heap = hpy();
.....
print heap.heap();
各主要方法調用子方法的時間來分析我的內存使用情況。令人驚訝的是,它總是給出相同的輸出。但內存使用量正在不斷增長。
我不知道我是否沒有使用heapy,或者「top」命令中的VIRT和RES沒有真正反映我的代碼使用的內存?
或者任何人都可以提供一個更好的方法來追蹤Python腳本中的內存使用情況嗎?
非常感謝!
聽起來像子方法會泄漏。假設你有權訪問它的代碼,試試[sys.getsizeof(object)或者pysizer](http://stackoverflow.com/questions/449560/how-do-i-determine-the-size-of-an-object -in-python)來測量submethod中的對象。 – smci