1. /proc/pid/status
可以查看进程相关的详细信息,当内存异常时可查看
参考:http://blog.csdn.net/beckdon/article/details/48491909
2. top -p 进程号
实时查看进程相关内存
3. 内存调试
参考:http://blog.csdn.net/ybdesire/article/details/73128353
memory_profiler 查看函数中各行代码的内存增长
guppy 查看python对象占用的堆内存大小
4. 查看变量引用计数
import sys
sys.getrefcount(变量名)
5. 强制回收变量
del 变量名
gc.collect()
注意:上述代码只能让python回收内存,但是python底层的libc和os如果不释放内存的话,内存空间还是占用的。对于大变量,最好循环处理,不要一次性读入内存,防止一下子占用过大内存后无法及时回收。
http://blog.csdn.net/nirendao/article/details/44426201/ 中对del 和 gc.collet的效果做了测试,里面说如果使用gc.collect(),在内存快要耗尽时,回收机制会起作用。具体需要试验。