perf 是 Linux 2.6.31 以后内置的性能分析工具。它是一款综合性分析工具,以性能事件采样为基础,可以分析从内核级别,到进程线程级别,甚至到函数及汇编级别的性能问题。

1 perf top

类似于 top,它能够实时显示占用 CPU 时钟最多的函数或者指令


$ perf top
Samples: 833  of event 'cpu-clock', Event count (approx.): 97742399
Overhead  Shared Object       Symbol7.28%  perf                [.] 0x00000000001f78a44.72%  [kernel]            [k] vsnprintf4.32%  [kernel]            [k] module_get_kallsym3.65%  [kernel]            [k] _raw_spin_unlock_irqrestore
...

2 perf record + perf report

perf top 虽然实时展示了系统的性能信息,但它的缺点是并不保存数据,也就无法用于离线或者后续的分析。
perf record 则提供了保存数据的功能,保存后的数据,需要你用 perf report 解析展示。


$ perf record # 按Ctrl+C终止采样
[ perf record: Woken up 1 times to write data ]
[ perf record: Captured and wrote 0.452 MB perf.data (6093 samples) ]$ perf report # 展示类似于perf top的报告

在实际使用中,我们还经常为 perf top 和 perf record 加上 -g 参数,开启调用关系的采样,方便我们根据调用链来分析性能问题。

3 火焰图

perf report看起来还不是很方便,我们可以生成图形化的性能分析结果

$ perf record -F 99 -a -g -- sleep 60
$ perf script | ./stackcollapse-perf.pl > out.perf-folded
$ ./flamegraph.pl out.perf-folded > perf-kernel.svg

方便好用的在线CPU性能调优工具--perf的常见用法相关推荐

  1. 系统级性能调优工具Perf成功移植到龙芯处理器

    http://www.loongson.cn/news/company/304.html 程序优化主要包括算法优化.代码优化和系统级优化,Perf是Linux内核自带的系统级性能调优工具,2.6.31 ...

  2. 【会议记录】基于CPU性能调优的必要性和方法介绍

    前一段时间我参加了阅码场的活动 Yomoday(北京场),现场有很多技术专家,非常多前沿的技术分享.这是其中一个主题的记录,尽量还原当时的分享内容,但也可能有些地方不特别准确. 1 基于CPU性能调优 ...

  3. jvm第五节-性能调优工具使用

    为什么80%的码农都做不了架构师?>>>    很多开发人员都不是很了解,jdk在安装的时候在bin目录下有很多方便我们调试的工具,有的工具是非常好用的,下面介绍一下jdk自带的调优 ...

  4. JVM性能调优(4)——性能调优工具

    目录 一.JDK工具1.JDK工具2.利用 jps 找出进程3.利用 jstat 查看VM统计信息4.利用 jmap 查看对象分布情况5.利用 jstack 分析线程栈 二.Linux 命令行工具1. ...

  5. Java应用性能调优工具介绍及实践

    一.背景 (1).随着微服务架构的逐渐推广,一个大型的单个应用程序被拆分为数个微服务系统,这为研发人员的本地调试跟踪带来困难 (2).在微服务架构中,由于业务的复杂性,常常一个业务流程涉及好数个微服务 ...

  6. JVM性能调优监控工具专题一:JVM自带性能调优工具(jps,jstack,jmap,jhat,jstat,hprof)...

    2019独角兽企业重金招聘Python工程师标准>>> 前提概要:         JDK本身提供了很多方便的JVM性能调优监控工具,除了集成式的VisualVM和jConsole外 ...

  7. java 性能 火焰图_性能调优工具-火焰图

    性能调优工具-火焰图 发布时间:2019-07-17 19:29, 浏览次数:402 前言 工具的进化一直是人类生产力进步的标志,合理使用工具能大大提高我们的工作效率,遇到问题时,合理使用工具更能加快 ...

  8. vmstat、uptime、mpstat-CPU性能调优工具

    vmstat-CPU性能调优工具 vmstat vmstat命令的语法和参数 uptime mpstat 安装sysstat工具包 语法和参数 vmstat vmstat是VirtualMeomory ...

  9. jvm性能调优工具之 jmap使用详解

    本文来说下jvm性能调优工具之 jmap使用详解 文章目录 概述 jmap用法 示例一:no option 示例二:heap 示例三:histo[:live] 示例四:clstats 示例五:fina ...

最新文章

  1. maven学习(4)-Maven 构建Web 项目
  2. NCEPU:线下组队学习周报(009)
  3. 博士大佬为机器学习总结的人工智能入门指南!
  4. python requests 重新定向错误 requests.exceptions.TooManyRedirects: Exceeded xx redirects 解决方法
  5. [转]我们为什么需要工作流
  6. 【商务智能】数据预处理
  7. 终于编译好了qt的oracle驱动QOCI,连接成功!!!
  8. 使用外置tomcat部署spring boot程序需添加servlet-api
  9. markword用于标记锁的位数
  10. STM32F103五分钟入门系列(十三)独立看门狗IWDG
  11. umi config.js整体defineConfig配置
  12. console.log 用法
  13. android google map研究
  14. jQuery.each方法
  15. (转)《精通比特币》原码分析: rpc_block
  16. 硬盘安装manjaro linux,安装Manjaro Linux的详细步骤
  17. 楚天音乐台的在线广播的URL代码
  18. 数据结构-指针和结构体
  19. 7张图告诉你成功者与失败者的行为差别
  20. 【毕业设计】基于java web的医院预约挂号系统

热门文章

  1. 微信公众号 语音转文字api_微信重新上线的灰度测试功能:语音上滑转文字发送...
  2. deephash项目代码使用指北
  3. linux 线程退出资源回收,有关linux线程资源回收的有关问题
  4. 类 java_java类的基本结构
  5. jconsole 里的线程编号一直在增加_第三章_运行时数据区概述及线程
  6. 单目标多目标 灰狼算法算法讲解
  7. java设计模式观察者模式吗_Java设计模式之观察者模式原理与用法详解
  8. java中如何创建对话框_Java – 如何创建自定义对话框?
  9. 计算机文化基础课程实验,山东经贸职业学院计算机文化基础课程实验教学大纲.doc...
  10. 中raise抛出异常_Ruby 异常