python的內(nèi)存管理是一個麻煩的東西勒魔,調(diào)試主要是用gc.set_debug(gc.DEBUG_UNCOLLECTABLE)等方法损同,查看有哪些變量沒有被回收租漂。
在Django 中project的setting.py里添加代碼打印日志調(diào)節(jié)仪或。
內(nèi)存溢出的原因可能有兩個:
- 對象被更長生命周期的對象所引用颖系,不得釋放。之前好像是views.py里的處理request函數(shù)中沒有釋放其中的變量引起了忆蚀,使用了del后確實降了內(nèi)存矾利。
- 重寫了對象的del函數(shù),不過這個自從Python的3.4版本后不管是否重新都會被回收馋袜。