开源项目之调试python应用生成性能cpu火焰图

前几天听了杨博同学的分享,是关于如果使用Systemtap火焰图分析python的性能问题..  有些感触. 以前做运维的时候,总是折腾火焰图来分析业务性能.  现在反而转作开发后,没怎么用火焰图来分析问题.   这次我把cpu火焰图的功能封装模块.  使用很是简单,直接import,run一下就可以了.

慕名奇妙的总是被爬走文章,这里标注下python生成在线火焰图的文章 http://xiaorui.cc/?p=2212


项目名

profiler_online

介绍:

用来解析查找python程序可能存在的各方面性能或者奇葩问题的工具,通过web访问访问可以直接拿到火焰图.

本项目是基于FlameGraph封装的,他本身是perl开发的,我就地封了一层调用,外加了web展现.这样对于python工程师来说,可以方便的把调试功能加入应用里面.

Gregg开发的FlameGraph源码

https://github.com/brendangregg/FlameGraph

Python systemTap参考文档

https://github.com/nylas/nylas-perftools

Will Add Future:

加入更完善的信号控制
加入内存的相关信息
查询时间范围


安装:

pypi


源码安装


用法:

这边已经封装好了,你需要做的只是把性能分析模块引入到你的应用里面.


run_profiler支持三个参数:


测试:

打开浏览器 http://127.0.0.1:8080 这样就可以显示正在运行服务的性能火焰图了.

问题:

下面是以前创建火焰图的方法.


改进的方法:

直接浏览器打开,地址栏 –> 127.0.0.1:8080
在开发过程中,遇到了python系统调用时不能正常捕获输出. 现在已经改为临时文件的方式.

END….


对Golang感兴趣的朋友可以加群: 278517979 !!!
另外如果大家觉得文章对你有些作用! 如果想赏钱,可以用微信扫描下面的二维码, 感谢!
另外再次标注博客原地址  xiaorui.cc

发表评论

电子邮件地址不会被公开。 必填项已用*标注

您可以使用这些HTML标签和属性: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">