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_neighbors
和to_block
消耗的时间差不多。通过W和S键可以放大缩小火焰图,A和D则是平移。
更多详细用法可见原作者高天在PyCon 2020上的talk1。
参考资料
- Python代码理解,从微观到宏观,从功能到性能 - 高天的视频 - 知乎, https://www.zhihu.com/zvideo/1320722362237902848 ↩
以上是 VizTracer:Python无需修改源代码对每个函数进行测试 的全部内容, 来源链接: utcz.com/a/128941.html