使用此开源可视化工具了解您的Python代码
VizTracer可视化并跟踪Python代码,以更深入地了解代码的工作方式。

随着Python项目变得越来越大,越来越复杂,这对理解它是具有挑战性的。即使您编写了整个项目,也无法知道它是如何工作的。调试和分析代码对于更好地理解它至关重要。
VizTracer是一个工具,可通过跟踪和可视化其执行来帮助您理解Python代码。在不对源代码进行任何更改的情况下,VizTracer可以记录函数条目/退出,函数参数/返回以及任何任意变量,然后使用直观的前端Google Trace-Viewer显示数据。
这是运行蒙特卡洛树搜索的示例:
viztracer_mcts.png

CC BY-SA 4.0
每个函数都以时间轴上的堆栈样式记录和可视化,以便您可以查看运行程序时发生的情况。您可以放大以查看任何特定点的详细信息:
viztracer_zoomin.png

CC BY-SA 4.0
VizTracer还可以自动记录函数参数和返回值。您可以单击功能条目并查看详细信息:
viztracer_details.png

CC BY-SA 4.0
或者,您可以创建一个全新的信号并将其用于记录变量。例如,当您执行梯度下降时,这将显示成本值:
viztracer_gradient.png

CC BY-SA 4.0
与其他具有复杂设置的工具相比,VizTracer超级易用且没有任何依赖关系。您可以通过以下方式从pip安装它:
pip install viztracer
并通过输入(<your_script.py>脚本的名称在哪里)来跟踪程序:
viztracer <your_script.py>
VizTracer将在您的工作目录中生成HTML报告,您可以在Chrome中打开该报告。
VizTracer提供了其他高级功能,例如过滤器,您可以使用它们过滤掉不想跟踪的功能,从而获得更清晰的报告。例如,要仅在文件中包含功能,您需要:
viztracer include_files ./ --run <your_script.py>
要记录函数参数并返回值:
viztracer --log_function_args --log_return_value <your_script.py>
您可以通过对源代码进行较小的修改来获得其他功能,例如用于记录数值和对象的自定义事件。
VizTracer还包括一个虚拟调试器(vdb),可以调试VizTracer的日志文件。vdb调试您执行的代码(非常类似于pdb),以便您可以了解代码流。有用的是,它支持及时运行,因为它知道发生的一切。
与某些原型不同,VizTracer在纯C中实现其核心,从而将开销显着降低到类似于cProfile的水平。
VizTracer是开源的,根据Apache 2.0许可证发行,并支持所有常见的操作系统平台(Linux,macOS和Windows)。您可以了解有关其功能的更多信息,并在GitHub上访问其源代码。
