我的金字塔视图以一种有趣的方式行为不端。视图的作用是从文件中获取一个非常复杂的对象层次结构(使用pickle),进行一些处理,然后呈现一个html表单。好又简单。
设置:
我正在运行Ubuntu 12.04 64bit,Python3.2,Pyramid 1.3.3,SQLAlchemy 0.7.8并使用标准的女服务器服务器。
症状
我遇到了一些效率问题,所以使用系统监视器来试图查看是什么,并发现金字塔正在进行处理,对于视图,我描述了我的ram使用率稳步上升。由于html表单在我的浏览器中显示,ram使用情况稳定下来但没有下降。重新加载视图导致ram使用从它停止的地方稳定增长。如果我继续这样做,我的所有公羊都会用完,一切都会停止。
如果我杀了服务器,那么ram使用率会立即下降。
问题
发生了什么事?很明显,在视图渲染之间没有释放内存,但为什么会发生这种情况呢?我怎么能让它停下来?我甚至尝试在从视图返回之前调用del,然后没有任何改变。
答案 0 :(得分:2)
Pyramid的调试工具栏使对象保持活跃状态。停用它可以解决大多数内存泄漏问题。我在金字塔中搜索错误的原因泄漏似乎并不是金字塔的问题