首页 > 编程语言 >perf + 火焰图分析程序性能

perf + 火焰图分析程序性能

时间:2023-08-19 14:55:05浏览次数:47  
标签:perf 分析程序 record 火焰 report data cpu

perf + 火焰图分析程序性能

 

1、perf命令简要介绍

性能调优时,我们通常需要分析查找到程序百分比高的热点代码片段,这便需要使用 perf record 记录单个函数级别的统计信息,并使用 perf report 来显示统计结果;

perf record

perf report

举例:

sudo perf record -e cpu-clock -g -p 2548

-g 选项是告诉perf record额外记录函数的调用关系

-e cpu-clock 指perf record监控的指标为cpu周期

-p 指定需要record的进程pid

 

程序运行完之后,perf record会生成一个名为perf.data的文件,如果之前已有,那么之前的perf.data文件会被覆盖

获得这个perf.data文件之后,就需要perf report工具进行查看

perf report -i perf.data

-i 指定要查看的文件

 以诊断mysql为例,report结果:

$sudo perf report  -i perf.data

 

这种格式很不直观

 2、使用火焰图展示结果

1、Flame Graph项目位于GitHub上:https://github.com/brendangregg/FlameGraph

2、可以用git将其clone下来:git clone https://github.com/brendangregg/FlameGraph.git

 

我们以perf为例,看一下flamegraph的使用方法:

1、第一步

$sudo perf record -e cpu-clock -g -p 28591

Ctrl+c结束执行后,在当前目录下会生成采样数据perf.data.

2、第二步

用perf script工具对perf.data进行解析

perf script -i perf.data &> perf.unfold

3、第三步

将perf.unfold中的符号进行折叠:

#./stackcollapse-perf.pl perf.unfold &> perf.folded

4、最后生成svg图:

./flamegraph.pl perf.folded > perf.svg

 

标签:perf,分析程序,record,火焰,report,data,cpu
From: https://www.cnblogs.com/yaoyangding/p/17642463.html

相关文章

  • Striving for Simplicity and Performance in Off-Policy DRL: Output Normalization
    发表时间:2020(ICML2020)文章要点:这篇文章基于SAC做简单并且有效的改进来提升效果。作者首先认为SAC里面的entropy是为了解决actionsaturationduetotheboundednatureoftheactionspaces,这个意思就是说动作空间假如约束到[0-1],动作通常会在0和1两个端点处,而加了entropy可......
  • PHP 使用xhprof 分析程序
    PHP增加扩展xhrofgitclonehttps://github.com/longxinH/xhprof.git./xhprofcdxhprof/extension//path/to/php7/bin/phpize./configure--with-php-config=/path/to/php7/bin/php-configmake&&sudomakeinstallPHP配置增加ini[xhprof]extension=xhprof.so......
  • Mybatis-plus SQL效率插件PerformanceInterceptor无效->替换为p6spy
    使用mybatis-plus时,需要加入执行的sql分析发现mybatis-plus中的PerformanceInterceptor无效了查了信息发现3.2.0版本之后把这个功能可剔除了可同等替换为p6spy插件添加依赖第一<dependency><groupId>p6spy</groupId><artifactId>p6sp......
  • 【Oracle】 insert performance issue
    https://blog.iarsov.com/oracle/insert-statement-taking-long-time/--->https://blog.iarsov.com/oracle/sequences-cache-nocache/......
  • Perf性能分析工具
    Perf全名是PerformanceEvent,是在Linux2.6.31以后内建的系统效能分析工具,它随着核心一并释出。藉由perf,应用程式可以利用PMU(PerformanceMonitoringUnit),tracepoint和核心内部的特殊计数器(counter)来进行统计,另外还能同时分析运行中的核心程式码,从而更全面了解应用程式......
  • Linux 性能分析工具Perf
    Perf全名是Performance Event,是在Linux 2.6.31 以后内建的系统效能分析工具,它随着核心一并释出。藉由perf,应用程式可以利用PMU (Performance Monitoring Unit), tracepoint 和核心内部的特殊计数器(counter) 来进行统计,另外还能同时分析运行中的核心程式码,从而更全面了解......
  • dperf minio 团队开源的磁盘性能测试工具
    dperfminio团队开源的磁盘性能测试工具基于golang开发,使用简单,类似的有fio说明相比fiodperf没有那么多的参数,实际上dperf核心似乎主要是为了方便minio使用的,但是对于日常中需要测试一些磁盘问题也是可以的,可以用来发现磁盘的瓶颈参考资料https://github.com/minio/dpe......
  • Performance improvement techniques in String and StringBuffer
    ThistopicillustratestheperformanceimprovementtechniquesinStringandStringBufferwiththefollowingsections:OverviewofStringandStringBufferBetterwayofcreatingStringsOptimizationbyinterningStringsOptimizationtechniqueswhenConcatenati......
  • [ESP] ESP32开机自动配网运行iperf
    esp-idf版本tag-V4.4.2示例路径examples/wifi/iperfiperf_example_main.c(修改后的版本)/*Wi-FiiperfExampleThisexamplecodeisinthePublicDomain(orCC0licensed,atyouroption.)Unlessrequiredbyapplicablelaworagreedtoinwritin......
  • iperf3速度测试
    Server端:iperf3-s-i10-p5201客户端: Tcp:iperf3-cx.x.x.x-p5201-t60-P10-RUdp:iperf3--udp-cx.x.x.x-p5201-t60-P10-R测试结果:Tcp下行90mb,udp下行10mb,并且不一会儿伴随着大量丢包,果然udp被qos了。 ......