python的内存管理是一个麻烦的东西,调试主要是用gc.set_debug(gc.DEBUG_UNCOLLECTABLE)等方法,查看有哪些变量没有被回收。
在Django 中project的setting.py里添加代码打印日志调节。
内存溢出的原因可能有两个:
- 对象被更长生命周期的对象所引用,不得释放。之前好像是views.py里的处理request函数中没有释放其中的变量引起了,使用了del后确实降了内存。
- 重写了对象的del函数,不过这个自从Python的3.4版本后不管是否重新都会被回收。