rod*_*der 8 python heap profiling twisted
我试图用Heapy来描述扭曲的python代码.例如(伪代码):
from twisted.web import resource, server
from twisted.internet import reactor
from guppy import hpy
class RootResource(resource.Resource):
render_GET(self, path, request):
return "Hello World"
if __name__ == '__main__':
h = hpy()
port = 8080
site = server.Site(RootResource(mq))
reactor.listenTCP(port, site)
reactor.run()
Run Code Online (Sandbox Code Playgroud)
在配置文件浏览器中查看Heapy配置文件结果需要做什么?
看在孔雀鱼网站,没有找到关于如何有启动配置文件浏览器的任何信息后,我开始寻找周围的孔雀鱼源,并最终发现孔雀鱼/ heapy/Prof.py,在其中我看到了包含此行文档字符串结尾:
[0] heapy_Use.html#heapykinds.Use.pb
Run Code Online (Sandbox Code Playgroud)
然后,记住,我有看到一些文件给guppy.hpy作为使用的返回类型,我检查,看看是否guppy.hpy()PB()会做任何事情.确实如此.这似乎是探查器浏览器的启动方式.我不确定这是不是你问的问题,但在我回答你问题的其他可能部分之前我需要弄明白.:)
使这些信息可用的最简单方法似乎是在您的Web服务器中创建一个资源,该资源在其呈现过程中调用Use.pb.还有其他方法,例如在应用程序中嵌入沙井,或使用信号处理程序来触发它,但我喜欢资源的想法.所以,例如:
class ProfileBrowser(Resource):
def render_GET(self, request):
h.pb()
return "You saw it, right?"
...
root = RootResource(mq)
root.putChild("profile-browser", ProfileBrowser())
...
Run Code Online (Sandbox Code Playgroud)
然后,只要您想查看配置文件浏览器,就可以访问/配置文件浏览器.在"PB"呼叫阻塞直到轮廓浏览器退出(注意,只是关闭窗口,与WM破坏按钮似乎并没有引起它返回 - 只有退出菜单项似乎),所以您的服务器已挂起,直到您关闭窗口,但出于调试目的,似乎它可能没问题.