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

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如何在导入到Google工作表时使用ApachePOI显示系列标签   java在Swing表上修改数据生成SQL   java TCP数据包在网络级别合并   java自动连线bean在线程位置为空   javasocket。禁用无线连接时getOutputStream()阻塞   JSON上的javascript字符串数组。stringify输出unicode字符   java在Oracle数据库中存储不同类型数据的最佳体验   Spring MVC中模板引擎后的java进程输出   不知从哪里来的java空字符串。   如何加载java。使用Adobe Flex的客户端的属性文件?   java如何替换多层括号之间的所有内容?   {JSONObject必须以java'开头   java使用commandButton或commandLink返回并管理HTML控件值   java Android大文本视图动态   java JMock需要自定义类   java Android应用程序在emulator中工作,但在设备中失败   java连接到derby数据库时使用什么文件路径格式?   java在一个函数调用中返回两个结果?