使用Hotspot分析代码时间性能,优化运行时间

简介

 我们平时写的程序大多符合二八法则,即百分之八十的程序运行时间取决于那仅仅百分之二十的程序,所以找到着百分之二十的程序对于我们优化程序性能可谓是事办功倍,有时候我们追求代码中某个算法那仅一两步的优化,其实对于整体运行时间的优化作用可谓是微乎其微,本文章将介绍一种工具Hotspot,它可以帮助我们分析我们的代码各个部分的耗时.

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

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

perf安装

perf是系统性能分析工具,大到系统全局性性能,再小到进程线程级别,甚至到函数及汇编级别。

  • 查看电脑有没有装perf:在终端输入 perf ,看输出的信息。

  • 如果没有安装就根据输出信息安装,
sudo apt install linux-tools-4.15.0-43-generic

sudo apt install linux-cloud-tools-4.15.0-43-generic

 然后终端输入perf,已安装。

Hotspot安装

1. 安装依赖项(On Debian/Ubuntu)

add-apt-repository ppa:kubuntu-ppa/backports

apt-get update

sudo apt-get install libkf5threadweaver-dev libkf5i18n-dev libkf5configwidgets-dev libkf5coreaddons-dev libkf5itemviews-dev libkf5itemmodels-dev libkf5kio-dev libkf5solid-dev libkf5windowsystem-dev libelf-dev libdw-dev cmake extra-cmake-modules gettext

2. 安装Hotspot

# 下载github上的hotspot项目
git clone --recurse-submodules https://github.com/KDAB/hotspot.git

mkdir build-hotspot

cd build-hotspot

cmake ..

# 编译
make

make install

 注:HotSpot还没有为大多数Linux发行版打包-您可能不得不使用AppImage,它将在最近的Linux发行版上正常工作。

安装AppImage:

wget https://github.com/KDAB/hotspot/releases/download/v1.1.0/hotspot-v1.1.0-x86_64.AppImage

# 设置执行权限
chmod +x hotspot-v1.1.0-x86_64.AppImage

./hotspot-v1.1.0-x86_64.AppImage

3. 使用Hotspot

  • 终端输入hotspot就可以知道有没有安装成功了。

  • 选择File->Record data,然后在Application:处输入你的可执行文件,下面的Working Directory:是你的当前工作目录,如果你的参数读取出错,可能跟这个路径有关。
  • 然后点击“Start Recording”开始运行程序,运行结束后会在你的目录里看到perf.data等文件。
  • 点击右上角“Home”,Open File打开你的perf.data文件,然后就可以看到你的程序的调用情况。

  • 可以看到函数时间运行占比等等信息,可以点击这些颜色条进入内部查看。

后续

 喜欢的话可以关注一下我的公众号技术开发小圈,尤其是对深度学习以及计算机视觉有兴趣的朋友,我会把相关的源码以及更多资料发在上面,希望可以帮助到新入门的大家!
在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Rosen.

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值