python - 使用 Dowser 在 Python 中跟踪内存泄漏

标签 python memory memory-leaks

我每晚在装有 centos 操作系统的虚拟机上运行一些测试。最近测试已经占用了所有可用内存和机器上几乎所有的交换内存,我为 VM 分配了两倍的内存并且它仍在发生,这导致 VM 的物理主机死亡。这些测试之前运行时不需要一半的内存,所以我需要使用某种形式的 python 内存分析器 来调查发生了什么。

我看过 PysizerHeapy —— 但经过研究后,Dowser 似乎是我所追求的,因为它需要代码零更改。

到目前为止,从文档和谷歌搜索我已经在它自己的类中得到了这段代码:

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 实例,但这是行不通的。我对文档感到困惑:

   'python dowser __init__.py'. 

是否可以只运行这个?我收到错误:

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

dowser 能否独立于我在 VM 上的测试套件运行?或者我是否必须将上面的代码实现到我的主类中才能运行我的测试来跟踪 python 实例?

最佳答案

Dowser 旨在作为您的应用程序的一部分运行。因此,无论您在何处初始化应用程序,都添加以下行

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

然后你可以浏览到http://localhost:8080/dowser来查看dowser界面。

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

关于python - 使用 Dowser 在 Python 中跟踪内存泄漏,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13044699/

相关文章:

python - Pyramid (Python): Override default error view

c# - 内存扫描仪未找到结果

ios - 请求访问通讯簿时出现MachMessagePort错误

c - 内存分配和内存泄漏: C

python - 为什么 Matlab interp1 产生的结果与 numpy interp 不同?

python - Airflow 中的辅助功能

python - 按列扩展行,同时根据值操作其他行

java - 使用自动装箱的内存泄漏

python - 一个函数中的一个函数是否会比单独定义这两个函数占用更多的 RAM 内存?

.net - .NET 应用程序中与 native 堆相关的内存泄漏