C剖面火焰图发生器

flameprof的Python项目详细描述


python的cProfile状态的flamegraph生成器。

Flamegraphs允许 以非常简洁易懂的方式可视化函数之间的关系 态度。

Flameprof解决了内置cprofile报告的主要问题,可以替换 gprof2dot因为以后的输出 有很多噪声的非常大的图。

Flameprof使用由 Profile.dump_stats() 调用或通过直接脚本分析:

python -m cProfile -o myscript.prof myscript.py

安装

通过PIP:

pip install flameprof

或者可以直接调用flameprof.py

python flameprof.py input.prof > output.svg

本机SVG(–format=SVG)

本机SVG功能:

  • 在工具提示中使用全名压缩函数名
  • 精确计时(累计和总计)
  • 调用计数(在悬停时的工具提示中)
  • 绿色条显示flameprof开始猜测计时比率的堆栈帧
  • 倒转火焰图显示所有调用的总时间

可以通过适当的cli设置图形宽度、行高、字体大小和阈值 选项。

flameprof requests.prof > requests.svg
Requests profile

倒火焰图:

Requests profile

(图像可单击)

用flamegraph.pl生成的Svg(–format=log)

此外,flameprof还可以输出适合作为flamegraph.pl输入的跟踪日志

默认情况下,可以将“samples”视为微秒(请参见--log-mult选项)。

flameprof --format=log requests.prof | flamegraph > requests-flamegraph.svg
Requests profile with flamegraph.pl

(图像可点击)

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java MySQL连接MAC到Windows 7   java BufferedReader在读取空行后等待30秒   java中的类继承和arraylist   在java中创建字符串的更好方法   java意图是未定义的,尝试了很多次,没有任何效果   java如何使用JGit实现“git显示标记名”的等效功能?   eclipse的java重构插件   excel Java POI将工作簿转换为文件   java将数据从文本文件显示到JTable   java检查特定行中的给定字符串   HttpResponse头的java Junit测试   java在给定代码块中查找错误(类的扩展,个人/学生)   java getActivity()。findviewbyd(R.id.myId)返回Null   ExecutorService(Java)中的并发持久变量   java无法从世界加载多个实体