编程学习网 > 编程语言 > Python > VizTracer,一款轻量级Python代码性能利器,轻松可视化调试!
2026
01-09

VizTracer,一款轻量级Python代码性能利器,轻松可视化调试!


VizTracer是一款轻量级的Python代码跟踪、调试和性能分析工具。它能够以极低的开销追踪并可视化你的Python代码执行过程,帮助你快速定位程序瓶颈、理解代码执行流程以及进行性能优化。其前端UI基于Perfetto,提供流畅的交互体验,即使是GB级别的跟踪数据也能轻松处理。它支持多种平台(Linux/macOS/Windows),并兼容各种Python运行环境,包括线程、多进程、子进程、异步以及PyTorch等。

VizTracer能做什么?
VizTracer的功能远不止简单的性能分析,它提供了一整套强大的功能,帮助你更全面地理解和调试Python代码:
• 详细的时间线信息: 提供函数的详细进出信息,并与源代码关联,方便你直观地了解代码的执行顺序和时间消耗。
• 易于使用: 大多数功能无需修改源代码,安装也极其简单,没有额外的依赖包。
• 低开销: VizTracer致力于保持极低的运行时开销,是市场上速度最快的追踪器之一。
• 多环境支持: 完美支持线程、多进程、子进程、异步操作以及PyTorch框架,几乎可以应对所有Python代码场景。
• 强大的前端界面: 基于Perfetto打造的UI,能够流畅地渲染GB级别的跟踪数据,并提供缩放、导航等便捷操作。
• 灵活的过滤功能: 允许你根据时间、函数调用栈深度、文件路径等条件过滤跟踪数据,从而减少开销并专注于感兴趣的部分。
• 丰富的附加日志: 无需修改代码,就能记录变量、属性、异常、垃圾回收操作等额外信息,提供更全面的调试信息。
• 自定义事件: 允许你插入自定义事件,实现类似print调试的效果,但能更精确地记录事件发生的时间和上下文。
• 火焰图支持: 集成Perfetto的火焰图功能,方便你直观地分析函数调用关系和性能热点。
• 远程附加: 支持远程附加到任意运行中的Python进程进行追踪。
如何使用VizTracer?
VizTracer 提供多种使用方式,以满足不同的需求:
1. 命令行方式:
这是最简单直接的方式,只需在运行脚本前添加 viztracer 命令即可:
viztracer my_script.py arg1 arg2
执行完毕后,会生成一个 result.json 文件,使用 vizviewer result.json 命令即可打开可视化报告。添加 --open 参数可以自动打开报告。该方法支持模块和控制台脚本 (例如 Flask)。
2. 内联方式:
你可以直接在Python脚本中使用VizTracer API:
from viztracer import VizTracer
tracer = VizTracer()
tracer.start()
# ...你的代码...
tracer.stop()
tracer.save()  # 可选参数 output_file 指定输出文件名
或者使用 with 语句:
with VizTracer(output_file="optional.json") as tracer:
    # ...你的代码...
3. Jupyter Notebook:
在Jupyter Notebook中,可以使用VizTracer的cell magic:
%load_ext viztracer
%%viztracer
# ...你的代码...
执行后,单元格下方会出现一个“VizTracer Report”按钮,点击即可查看结果。
4. PyTorch支持:
使用 --log_torch 参数或在 VizTracer 对象中设置 log_torch=True 可以追踪PyTorch的原生调用和GPU事件。
5. 高级用法:
VizTracer 提供了丰富的配置选项,可以根据你的需求自定义跟踪行为,例如:
• 设定最小持续时间、最大栈深度过滤无关信息。
• 指定包含或排除的文件、忽略C函数调用。
• 使用稀疏日志减少开销。
总结
VizTracer 是一款功能强大、易于使用且低开销的 Python 代码跟踪和性能分析工具。它提供了丰富的功能,从简单的代码执行可视化到复杂的性能分析和调试,都能轻松胜任。无论是初学者还是经验丰富的开发者,都能从中受益,提升代码质量和运行效率。其简单易用的特性、强大的功能以及低开销的优势使其成为 Python 开发者不可或缺的利器。
以上就是“VizTracer,一款轻量级Python代码性能利器,轻松可视化调试!的详细内容,想要了解更多Python教程欢迎持续关注编程学习网。

扫码二维码 获取免费视频学习资料

Python编程学习

查 看2022高级编程视频教程免费获取