以适合火焰图格式输出的统计剖面仪

flamegraph的Python项目详细描述


一个简单的统计分析器,其输出格式适合于FlameGraph

安装:

只需运行:

pip install git+https://github.com/evanhempel/python-flamegraph.git

用法:

在探查器下运行脚本:

python -m flamegraph -o perf.log myscript.py --your-script args here

对输出运行brendan gregg的FlameGraph工具:

flamegraph.pl --title "MyScript CPU" perf.log > perf.svg

享受输出:

Attic create flame graph

筛选

有时您可能希望排除方法 (例如,在服务器中,等待新请求的方法) 或者您可能只想分析代码的一个子集 (对性能至关重要的特定方法及其子方法)。

过滤可以通过将python正则表达式传递给 -f--filter命令行选项 这将限制只输出匹配的行。 对整行进行筛选,以便可以通过 函数名、线程名、两者,甚至由 更复杂的过滤器,如函数abc调用def(ABC.*DEF)。

或者,由于输出是stackframes,每一行都有一个单独的输出, 这只需使用一个简单的grep过滤器即可完成。

Exclude:

  grep -v waiting_method perf.log > removed_waiting.log

Include:

  grep function_name perf.log > filtered.log

然后对过滤后的文件运行flamegraph.pl脚本。

yCanta webapp full profile of PDF export

yCantawebapp pdf导出的完整配置文件输出。大多数时间是 在等待状态和图表中使用不是很有帮助。

yCanta webapp filtered for PDF export format function.

已筛选的yCantawebapp pdf导出的配置文件输出。过滤在 pdf格式函数,因此已排除等待状态下花费的时间,并且 图表现在有用了。

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

推荐PyPI第三方库


热门话题
java如何为ConcurrentHashMap使用并设置适当的并发级别?   java泛型方法,运行时错误,   java在页面上显示加载的图像   java Paypal定期直接支付问题   java如何延迟重新绘制组件   JavaSpringBoot+Hibernate如何维护@Transient字段   java在其方法中获取关于类的信息   在java中将别名添加到枚举   java如何解决向google报告成绩时“需要重新连接客户端”的问题   清晰的java图像背景   java未找到适合JDateChooser的构造函数(字符串、字符串、字符)   java LRU缓存实现。某些测试用例的代码失败   if语句Java嵌套的if/Else条件   java JSoup“wrap”并非每次都按预期工作   Java Spring引导循环依赖于一个环境   ssl证书无法通过Java和IntelliJ连接到SOAP服务   带整数验证的Java扫描器   java在Flex中呈现具有动态列的datagrid   java Android:通过用户选择的选项将文件上载到服务器   子类中的java抛出错误、异常和运行时异常