web.py 内存泄漏

1 投票
1 回答
898 浏览
提问于 2025-04-16 12:47

我是不是做错了什么,还是说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。

1 个回答

4

在运行你的代码并通过另一个Python进程(使用urllib2)发送了成千上万的请求后,我发现内存使用量在最初的几百个请求中大约增加了20万,然后就停止增长了。这看起来并不奇怪,也不一定意味着有内存泄漏。要记住,Python使用自动内存管理,结合了引用计数和垃圾回收,所以并不能保证每一块不再使用的内存会立刻被重新利用;而且它可能会向操作系统请求内存,但即使不再需要,也不会立即归还。

所以我认为答案是:你并没有做错什么,web.py并没有内存泄漏。

撰写回答