1

我做错了什么还是 web.py 泄漏了内存?

import web

class Index:
  def GET(self): return 'hello web.py'
app = web.application(('/*', 'Index'), globals())
app.run()

运行上面的文件。观察任务使用了多少内存。在浏览器中转到 localhost:8080。关闭浏览器(以防止页面被缓存),然后再次打开页面,看看内存使用情况如何上升。每次关闭浏览器并重新访问页面时,它都会上升。

在 Win XP 上运行 python 2.6。

4

1 回答 1

4

在运行您的代码并向其发送数千个请求(通过另一个使用 urllib2 的 Python 进程)后,我发现它在前几百个请求的过程中增长了大约 200k,然后停止增长。这似乎不是不合理的,也不一定表示内存泄漏。请记住,Python 通过引用计数和垃圾收集的组合使用自动内存管理,因此不能保证它使用的每一位内存在不再使用的那一刻都是可重用的。它可能会向操作系统请求内存,然后即使不再需要它也不会返回它。

所以我认为答案是:你没有做错任何事,但是 web.py 不会泄漏内存。

于 2011-03-02T02:43:24.663 回答