代码之家  ›  专栏  ›  技术社区  ›  Sheena

金字塔应用程序未在视图之间释放内存

  •  3
  • Sheena  · 技术社区  · 12 年前

    我有一个金字塔观点,它以一种有趣的方式不当行为。视图所做的是从文件中获取一个非常复杂的对象层次结构(使用pickle),进行一些处理,然后呈现一个html表单。漂亮而简单。

    设置 以下为:

    我正在运行Ubuntu 12.04 64位、Python3.2、Pyramid1.3.3、SQLAlchemy 0.7.8,并使用标准的服务员服务器。

    症状

    我遇到了一些效率问题,所以使用系统监视器试图查看发生了什么,发现当金字塔正在进行处理时,我描述的视图中我的ram使用量稳步上升。当html表单显示在我的浏览器中时,ram的使用量趋于平稳,但没有下降。重新加载视图导致ram的使用量从停止的地方稳步增长。如果我继续这样做,我所有的ram都会用完,一切都会停止。

    如果我终止了服务器,那么ram的使用量会立即下降。

    问题

    怎么回事?很明显,在视图渲染之间没有释放内存,但为什么会发生这种情况?我怎样才能让它停下来?我甚至试着在从视野中回来之前给德尔打电话,但一切都没有改变。

    1 回复  |  直到 12 年前
        1
  •  2
  •   Sheena    12 年前

    Pyramid的调试工具栏使对象保持活动状态。停用它可以修复大多数内存泄漏问题。导致我在Pyramid中搜索错误的泄漏似乎根本不是Pyramid的问题