Python web.py内存泄漏

Python web.py内存泄漏,python,web-applications,memory-leaks,web.py,Python,Web Applications,Memory Leaks,Web.py,我是做错了什么还是web.py泄漏了内存 import web class Index: def GET(self): return 'hello web.py' app = web.application(('/*', 'Index'), globals()) app.run() 运行上面的文件。观察任务使用了多少内存。在浏览器中转到localhost:8080。关闭浏览器(以防止页面被缓存),然后再次打开页面,查看内存使用情况如何增加。每次您关闭浏览器并重新访问页面时,它都会上升 在

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

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


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

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


因此,我认为答案是:您没有做错任何事情,但是web.py不会泄漏内存。

可能是python进程在Windows上使用的某种底层资源(关闭等待模式下套接字的缓冲区等),也可能是python进程在Windows上使用的某种底层资源(处于关闭等待模式的套接字缓冲区等)+1表示“web.py不会泄漏内存”。Yandex使用web.py每天处理7000万次页面浏览量。您不太可能发现一个严重的资源泄漏问题,从而导致“Hello world!”应用程序与您的浏览器一次一页。我还使用urllib2点击了演示应用程序数百次,内存使用似乎相当稳定。啊,是的,我应该考虑使用urllib进行检查。感谢+1的“web.py不会泄漏内存”.Yandex使用web.py每天处理7000万次页面浏览。你不太可能发现一个严重的资源泄漏问题,这会影响到“Hello world!”应用程序与浏览器一次一页。我还使用urllib2点击演示应用程序数百次,内存使用似乎相当稳定。啊,是的,我应该考虑使用urllib进行检查。谢谢。