我有一個大型的長時間運行的服務器,並且數星期以來內存使用率穩步攀升。如何在python中創建不可收集的垃圾?
一般來說,正如下面指出的那樣,泄漏不太可能是我的問題;然而,我還沒有做很多工作,所以我想看看是否有任何泄漏。
在控制檯輸出是棘手的,所以我沒有運行gc.set_debug()
。這不是一個大問題,因爲我已經輕鬆地添加了一個API來運行它,然後運行gc.collect()
,然後遍歷gc.garbage
並通過HTTP將結果發回給我。
我的問題是在短時間內在本地運行它我的gc.garbage
總是空的。在部署泄漏之前,我無法測試我的一小部分代碼。
是否有一個微不足道的方法來創建一個無法收集的垃圾,所以我可以測試我的代碼列出了垃圾?
不是答案,但上個月Giovanni Bajo就EuroPython調試內存泄漏發表了精彩的演講。談話視頻在這裏:http://ep2011.europython.eu/conference/talks/debugging-and-profiling-techniques – grifaton
似乎至少需要一顆種子:( – Will