我在命令行中使用pycallgraph来分析和绘制一个相对简单的程序的调用图。然而,结果图像包含了标准库(线程、json、socket)的内部,即使我没有使用-s命令行选项。使用-e选项排除这些模块没有效果,使用-i会导致调用图为空。我也尝试过cProfile,但它只显示了主线程。在
如何使pycallgraph只在代码中显示调用?目前混乱的结果毫无用处。在
编辑:我使用的是0.5.1,可以通过easy_安装获得。正在运行pycallgraph/光标客户端.py输出这个:。如您所见,pycallgraph显示了模块json、re、encodings、socket和threading的内部结构。Re和encodings从来没有在我的代码中直接调用,而是分别通过json和socket调用。在
Pycallgraph提供了过滤功能,可以过滤出要从调用图中排除的任何模块、类或函数。在启动跟踪并传递给pycallgraph之前,应该定义以下函数
示例
pycallgraph跟踪开始是
^{2}$这样,您在filtercalls中提供的任何模块、类或函数都将被删除。请注意,在标准库中只提供模块名是不够的。因此,在mod中仍将忽略numpy.core公司被包括在内
pycallgraph有一个未记录的stop_trace()方法,可用于排除代码部分。有点像
这就是你想要的吗?在
source
相关问题 更多 >
编程相关推荐