首页 > 系统相关 >Linux 性能分析工具Perf

Linux 性能分析工具Perf

时间:2023-08-07 13:56:11浏览次数:33  
标签:perf 性能 Linux misses 取样 event Perf

Perf全名是Performance Event,是在Linux 2.6.31 以后内建的系统效能分析工具,它随着核心一并释出。藉由perf,应用程式可以利用PMU (Performance Monitoring Unit), tracepoint 和核心内部的特殊计数器(counter) 来进行统计,另外还能同时分析运行中的核心程式码,从而更全面了解应用程式中的效能瓶颈。

 

相较于OProfile和GProf,perf 的优势在于与Linux Kernel 紧密结合,并可受益于最先纳入核心的新特征。perf 基本原理是对目标进行取样,纪录特定的条件下所侦测的事件是否发生以及发生的次数。例如根据tick 中断进行取样,即在tick 中断内触发取样点,在取样点里判断行程(process) 当时的context。假如一个行程90% 的时间都花费在函式foo() 上,那么90% 的取样点都应该落在函式foo() 的上下文中。

 

Perf 可取样的事件非常多,可以分析Hardware event,如cpu-cycles、instructions 、cache-misses、branch-misses …等等。可以分析Software event,如page-faults、context-switches …等等,另外一种就是Tracepoint event。知道了cpu-cycles、instructions 我们可以了解Instruction per cycle 是多少,进而判断程式码有没有好好利用CPU,cache-misses 可以晓得是否有善用Locality of reference ,branch-misses 多了是否导致严重的pipeline hazard ?另外Perf 还可以对函式进行采样,了解效能卡在哪边。

标签:perf,性能,Linux,misses,取样,event,Perf
From: https://www.cnblogs.com/guxuanqing/p/17611246.html

相关文章

  • linux各章节的详细笔记
    linux1.网络连接的三种方式2.用户组2.1新增组:groupadd组名2.2删除组:groupdel组名2.3添加用户时直接加上组:useradd-g组名用户名2.4修改用户的组:usermod-g用户组用户名3.常用指令3.1mkdirmkdir[选项]目录常用选项:-p:创建多级目录3.2rmdirrmdir[选项]......
  • 1-linux下mysql8.0.33安装
    在互联网企业的日常工作/运维中,我们会经常用到mysql数据库,而linux下mysql的安装方式有三种:1.mysqlrpm安装2.mysql二进制安装3.mysql源码安装今天就为大家讲讲linux下mysql8.0.33版本rpm方式的安装。1.前提1.1.系统版本CentOS7.9.2009命令:cat/etc/redhat-release[root@cent79-2~]......
  • linux安装宋体
    解决pdf转图片字体乱码的问题1、命令安装yuminstall-yfontconfigmkfontscale2、查看字体#查看系统中的字体fc-list#查看系统中的中文字体  第一次fc-list:lang=zh/3、安装字体加入我要安装的字体是宋体:simsun.ttf文件#进入fonts目录cd/usr/share/fonts#......
  • UM2080F32基于ARM Cortex-M0+内核的超低功耗、高性能的、单片集成(G)FSK/OOK无线收发
    UM2080F32是基于ARMCortex-M0+内核的超低功耗、高性能的、单片集成(G)FSK/OOK无线收发机的32位SoC芯片。工作于200MHz~960MHz范围内,支持灵活可设的数据包格式,支持自动应答和自动重发功能,支持跳频操作,支持FEC功能,同时内部集成了完整的射频接收机、射频发射机、频率综合器、调制解......
  • linux(centos版本)下docker部署.netcore项目
    准备:1.要在Linux系统上使用Docker部署系统,你需要安装Docker引擎以及一些其他相关的软件。以下是安装步骤:安装Docker引擎:对于Ubuntu系统,可以使用以下命令安装Docker:sudoapt-getupdatesudoapt-getinstalldocker-cedocker-ce-clicontainerd.......
  • Linux服务器安装JDK20
    一、下载安装包访问官网,找到JDK20,复制下载链接我复制的链接是:JDK20二、Linux服务器操作1.服务器根目录下创建一个新的文件夹cd/mkdirjdkscd/jdks2.将下载好的jdk-20上传到jdks下3.解压缩tar-zxvfjdk-20_linux-x64_bin.tar.gz4.配置环境变量vim/etc/profile在配置文件末......
  • 636-基于FMC的Kintex XCKU060高性能PCIe载板
    一、板卡概述   板卡主控芯片采用Xilinx公司的KintexUltraScale系列FPGAXCKU060-2FFVA1156。板载2组64bit的DDR4SDRAM,每组容量2GB,可稳定运行在2400MT/s。支持PCIEGen3x8模式及一路FMCHPC接口。同时可提供Windows,Linux上位机驱动。 二、主要规格 ● 板载......
  • 关于Linux切换国内源错误的问题
    切换国内镜像源,更新错误我使用的debian10,国内镜像源使用清华源。国内镜像源支持参考:https://cloud.tencent.com/developer/article/1590080使用命令,切换到到清华源:```shecho"">/etc/apt/sources.listecho"debhttps://mirrors.tuna.tsinghua.edu.cn/debian/buster......
  • 高性能互斥锁(2023年08月07日更新)
    互斥锁必读说明简介  本软件根据《道德经》为核心思想而设计,实现了多线程同步使用的高性能互斥锁,用汇编语言编写,支持WIndows、Cygwin、Linux、AndroidNDK平台,比系统自带的互斥锁性能要高很多。移植  1、在MutexLock文件夹里有MutexLock.h头文件和对应平台的静态库和动态......
  • linux无法修改文件
    主要原因是文件元信息有i属性,文件被设置成i属性防止系统中某个关键文件被修改。用chattr执行改变文件或目录的属性,可执行lsattr指令查询其属性。查看文件属性lsattr/etc/resolv.conf删除i属性chattr-i/etc/resolv.conf增加i属性chattr+i/etc/resolv.conf......