目录

  • Perf
  • Hotspot
  • 安装与配置(Ubuntu20.04)
    • hotspot
    • cpu perf
  • 使用hotspot抓包并查看
    • 启动
    • 启动程序并抓包
    • 查看录制结果
  • 参考

Perf

perf是Linux下的一款性能分析工具,能够进行函数级与指令级的热点查找。它由一个叫Performance counters的内核子系统实现,基于事件采样原理,以性能事件为基础,支持针对处理器相关性能指标与操作系统相关性能指标的性能剖析,可用于性能瓶颈的查找与热点代码的定位。

Hotspot

hotspot是KDAB发布的一个新的分析perf.data的工具,是perf的图形界面。除了比命令行的perf report更直观外,其最大看点就是集成了火焰图,也就是FlameGraph。


安装与配置(Ubuntu20.04)

hotspot

sudo apt update
sudo apt install hotspot

cpu perf

sudo apt update
sudo apt install linux-tools-generic linux-cloud-tools-generic

使用hotspot抓包并查看

启动

  1. sudo hotspot
  • 注意:需要root权限,抓取的perf.data会保存至启动目录下

    如果启动不了提示缺少系统工具,按照说明安装自己内核版本对应的linux-tools-generic/linux-cloud-tools-generic即可

启动程序并抓包



  1. 在hotspot中选择File->Record data

  2. 选择需要分析的程序

    1. 如果程序已经启动,选Attach To Application,然后利用程序名或PID选择程序
    2. 如果需要指定程序启动,选Launch Application

    正常路包速度会比较慢,比较常用的降频方法是在Advance中加入 “-F 99 -a -g”

    参考:https://blog.csdn.net/juS3Ve/article/details/78651436

  3. 点击Start Recording录制一段时间的数据包,按Stop Recording结束

查看录制结果

  1. 使用View Results查看函数时间运行占比等信息(需要编译程序时开启debug symbol)

参考

  • 使用Hotspot分析代码时间性能,优化运行时间_Rosen.的博客-CSDN博客
  • https://www.5axxw.com/wiki/content/3noidg
  • https://blog.csdn.net/melody157398/article/details/125176078

使用hotspot/cpuperf进行CPU占用分析相关推荐

  1. java应用CPU占用过高分析、C2 Compiler Thread高CPU占用分析

    文章目录 1. 查找进程下占用过高CPU的线程 1.1 查找应用对应的pid 1.2 查看哪个线程cpu占用高,确定对应的线程id: 1.3 计算线程id的十六进制值 1.4 打印线程堆栈内容 2. ...

  2. Android系统top指令cpu占用分析

    Android使用top指令,在多核cpu占用统计中,cpu占用比与linux不一致,其统计的为所有核心占用百分比,非单核平均占用. 比如4核cpu下,top指令统计出的所有进程cpu占用百分比之和是 ...

  3. Java 线上cpu占用过高分析

    转载于:https://blog.csdn.net/ch999999999999999999/article/details/113151519 感谢作者:ch999999999999999999 J ...

  4. jstack分析cpu占用100%

    问题:使用jstack来分析cpu占用100%. 过程分析: 1. 运行测试程序后,top命令发现某个进程(pid)占用cpu达到100%. 2. 查看哪个线程占用最多资源: ps mp 24018 ...

  5. 一次cpu占用高的定位分析

    客户机器cpu占用较高甚至出现cpu打满的情况,造流程启动运行缓慢,状态更新卡死,严重影响用户体验. 首先观察用户机器资源情况,内存剩余40G,jvm内存占用10%不到. jps -ml 拿到pid之 ...

  6. java应用 cpu占用过高问题分析及解决方法

    主要介绍了java应用cpu占用过高问题分析及解决方法,具有一定参考价值,需要的朋友可以参考下. 使用jstack分析java程序cpu占用率过高的问题 1,使用jps查找出java进程的pid,如3 ...

  7. 一次线上集群CPU占用100%的问题分析过程

    一.前言 最近在搭建Ignite集群的过程中,突然发现线上机器运行一会儿之后CPU占用就会飙升到99%甚至100%.于是开始着手分析并解决了该问题.本文将详细讲解整个问题定位过程. 二.分析过程 1. ...

  8. 一种CPU占用过高的故障定位分析方法

    目 录 1.前 言 2. 测试类编写 3. 故障定位方法 3.1 定位CPU占比最高的PID 3.2 定位该PID对应的应用程序名字 3.3 定位具体的线程ID 3.4 定位具体的应用程序代码位置 4 ...

  9. windows服务器java项目cpu占用较高原因分析

    前言 在windows平台上要找出到底是哪个线程占用的cpu还不那么容易,linux用top就简单多了最后的解决方法: 1.找到java进程对应的pid. 找pid的方法是:打开任务管理器,然后点击 ...

最新文章

  1. mysql数据库有几种连接方法_几种常见的数据库连接方法
  2. 区块链去中心化有那么有用吗?
  3. C# does not contain a constructor that takes no parameter
  4. Node js报错 npm ERR! cb() never called!
  5. 【POJ - 3125 】Printer Queue(模拟,队列+优先队列,STL)
  6. 定量库存控制模型_供应链分析:关于库存管理的预测功能(1)
  7. spring-bean(xml方式管理)
  8. 怎么破解Windows账户密码
  9. 飞刀哥移植UC/OS-II到LPC1788(ARM Cortex-M3)的步骤
  10. 跑步蓝牙耳机推荐,适合跑步的蓝牙运动耳机
  11. 如何实现今日头条跳转到微信?
  12. 文件下载(三):wireshark抓包文件下载整个过程
  13. 豪杰超级解霸 V8.3 11月18日发布
  14. 个人云盘、企业云盘傻傻分不清楚?3分钟带你清晰两者差异!...
  15. 时间窗口算法用matlab,一种基于动态规划算法的时间窗口相关的参与者选择方法与流程...
  16. 互联网废品回收+废品回收小程序开发这些实际功能要有
  17. Redis6笔记分享(从NoSQL基础到分布式锁的介绍)
  18. 华为p10手机安装linux,matebookD安装linux系统总结
  19. 第五周嵌入式课程总结
  20. 快速编制管桩贯入度或终压值竣工图

热门文章

  1. 【原创】解决JT2Go二次开发提示license key无效问题
  2. Java爬虫代码示例|入门教程 1- 快速爬取百度美图
  3. java多线程过桥问题_(java)农夫过桥问题
  4. Halo的Sakura主题
  5. 沧小海的《xilinx的A7系列芯片资源学习笔记》之第一部分:I/O BANK(三)
  6. linux怎么读(中文读音发音)
  7. 如何画Flot折线图
  8. 财会法规与职业道德【7】
  9. 微信小程序做问卷——前端部分(生成问卷)
  10. android 应用程序内存上限,Android APP的最大可用内存