VizTracer:Python无需修改源代码对每个函数进行测试

VizTracer是个非常简便快捷的Python profiler,无需修改源代码即可对每个函数进行测试,并将结果以火焰图的形式展示。可以支持大型项目(如深度学习训练),同时也支持多线程和多进程的性能剖析。

# install

$ pip install viztracer

# call profiler

# if flags also have args, then should be separated by --

$ viztracer test.py arg1 arg2

# commonly-used arguments

$ viztracer --ignore_frozen--log_multiprocess

# test.py

# @log_sparse

# def foo():

# ...

$ viztracer --log_sparse test.py

下面是用Viztracer测量DGL的GraphSAGE模型,所得到的结果,可以从图中清晰看到每个函数的耗时。比如从图中可以看出这是两层采样,并且sample_neighborsto_block消耗的时间差不多。通过W和S键可以放大缩小火焰图,A和D则是平移。

January 18, 2021 - VizTracer

更多详细用法可见原作者高天在PyCon 2020上的talk1

参考资料

  1. Python代码理解,从微观到宏观,从功能到性能 - 高天的视频 - 知乎, https://www.zhihu.com/zvideo/1320722362237902848 

以上是 VizTracer:Python无需修改源代码对每个函数进行测试 的全部内容, 来源链接: utcz.com/a/128941.html

回到顶部