【问题标题】:GAE does not release memory after handling request?GAE 处理请求后不释放内存?
【发布时间】:2013-07-02 10:43:00
【问题描述】:

为什么会这样?

我运行一个使用大量内存的任务 - 任务完成后,我希望将内存释放回实例。

但是,这不会发生。内存在后续执行任务时不断增加,直到最终我收到软内存警告。

对此我能做些什么?这没有任何意义。我试过明确地调用gc.collect(),但这没有帮助。

【问题讨论】:

  • 你需要展示一些代码。
  • 您的任务是否导入了很多东西? GAE 缓存导入。
  • @Bugs 好的,新信息 - 但是为什么任务的后续运行会再次增加内存使用量?
  • +1 给你的昵称,先生。
  • 这称为内存泄漏。您的代码或您正在使用的库很可能没有释放内存。分配给全局变量的内存很容易导致这种情况。

标签: python google-app-engine


【解决方案1】:

就像 dragonx 编写了每个运行的处理程序、每个全局变量一样,导入缓存在 GAE 上,所以你的实例运行了多长时间。您可以重新配置应用程序设置以更快地创建新实例并杀死旧实例。这会给你一点机会来最小化这个错误。 由于内存泄漏,不必填充该错误。许多事情都会影响到这一点,因此您应该检查您的代码,尝试重新配置您的实例设置,也许您应该将您的实例类型更改为更高。

【讨论】:

    猜你喜欢
    • 2011-03-25
    • 1970-01-01
    • 2014-03-21
    • 2021-01-11
    • 1970-01-01
    • 2012-07-20
    • 1970-01-01
    • 1970-01-01
    • 2015-03-15
    相关资源
    最近更新 更多