【发布时间】:2012-09-30 10:24:15
【问题描述】:
我有一个金字塔视图,它以一种有趣的方式行为不端。视图所做的是从文件中获取一个非常复杂的对象层次结构(使用 pickle),进行一些处理,然后呈现一个 html 表单。漂亮又简单。
设置:
我正在运行 Ubuntu 12.04 64 位、Python3.2、Pyramid 1.3.3、SQLAlchemy 0.7.8 并使用标准的女服务员服务器。
症状
我遇到了一些效率问题,因此使用系统监视器尝试查看发生了什么情况,发现当金字塔进行处理时,对于我描述的视图,我的 ram 使用率稳步上升。由于 html 表单显示在我的浏览器中,内存使用量趋于平稳,但没有下降。重新加载视图导致 ram 使用量从它停止的地方稳定增长。如果我继续这样做,我所有的内存都用完了,一切都会停止。
如果我终止服务器,那么内存使用量会立即下降。
问题
发生了什么事?很明显,视图渲染之间没有释放内存,但是为什么会发生这种情况呢?我怎样才能让它停止?我什至尝试在从视图返回之前调用 del 东西,但没有任何改变。
【问题讨论】:
标签: pyramid pickle python-3.2