使用Dows跟踪Python中的内存泄漏

2024-09-26 18:07:06 发布

您现在位置:Python中文网/ 问答频道 /正文

我每晚都在一个带有centos操作系统的VM上运行一些测试。最近测试占用了机器上所有可用的内存和几乎所有的交换内存,我给虚拟机分配了两倍的内存,但它仍在发生,这导致虚拟机的物理主机死机。这些测试以前是在不需要一半内存的情况下运行的,所以我需要使用某种形式的python内存分析器来研究到底发生了什么。在

我看过Pysizer和Heapy,但经过研究,Dowser似乎是我的目标,因为它需要对代码进行零更改。在

我在google上找到了这门课上的代码:

import cherrypy
import dowser

class MemoryAnalyzer:

def memoryCheck(self):
    cherrypy.config.update({'server.socket_port':8080})
    cherrypy.tree.mount(dowser.Root())
    cherrypy.engine.start()

我希望这会打开文档中显示的web界面来跟踪主机上运行的所有python实例,但这不起作用。我被文件搞糊涂了:

^{pr2}$

有可能只运行这个吗?我得到了一个错误:

  /usr/bin/python: can't find '__main__.py' in 'dowser'

dowser可以独立于我的测试套件在虚拟机上运行吗?或者,我将不得不在我的主类中实现上面的代码来运行我的测试来跟踪python的实例吗?在


Tags: 实例内存代码import机器分析器物理情况
2条回答

Dowser将作为应用程序的一部分运行。因此,无论在哪里初始化应用程序,都要添加行

import dowser
cherrypy.tree.mount(dowser.Root(), '/dowser')

然后您可以浏览到http://localhost:8080/dowser查看dowser接口。在

注意,您从文档中引用的调用是为了测试dowser。正确的调用是python dowser/__init__.py。在

设法让dowser使用这个博客http://www.aminus.org/blogs/index.php/2008/06/11/tracking-memory-leaks-with-dowser?blog=2工作,并将端口更改为8088而不是8080(这在机器上没有使用,但仍然不起作用!)在

相关问题 更多 >

    热门问题