perf的基本使用方法

您所在的位置:网站首页 C语言record用法 perf的基本使用方法

perf的基本使用方法

2024-07-02 17:23| 来源: 网络整理| 查看: 265

目录 前言perf的基本使用方法perf listperf statperf topperf record/perf reportperf -eperf probeperf schedperf sched mapperf sched scriptperf sched replay perf lockperf kmemperf timechartperf script 参考文档

前言

声明:本文主要参考几位老师的博文(见参考文档)所做的总结,如有侵权,请告之!

Perf 是用来进行软件性能分析的工具,可以利用 PMU,tracepoint 和内核中的特殊计数器来进行性能统计,用来分析内核和应用程序的性能。 perf可以完成如下的性能分析

计算每个时钟周期内的指令数 进行函数级别的采样了解性能瓶颈 替代strace添加动态内核 probe 点做 benchmark 衡量调度器的好坏

perf性能分析需要了解如下背景知识

cache 流水线超标量体系结构乱序执行分支预测PMU计数tracepoint perf的基本使用方法

以下面的实例,说明perf的基本用法

//t1.c void longa() { int i,j; for(i = 0; i 来完成同样的功能。但重要的是,这些工具在内部对原始数据进行了汇总和分析,因而能够产生信息更加明确更加有用的统计报表。

perf timechart

perf timechart 的灵感来源于 bootchart。采用“简单”的图形“一目了然”地揭示问题所在。 在这里插入图片描述 在这里插入图片描述

上图的最上面一行是图例,蓝色表示忙碌,红色表示 idle,灰色表示等待,等等。接下来是 per-cpu 信息,再下面是 per-process 信息.Timechart 可以显示更详细的信息,上图实际上是一个矢量图形 SVG 格式,用 SVG viewer 的放大功能,我们可以将该图的细节部分放大,timechart 的设计理念叫做”infinitely zoomable”。放大之后便可以看到一些更详细的信息,类似网上的 google 地图,找到国家之后,可以放大,看城市的分布,再放大,可以看到某个城市的街道分布,还可以放大以便得到更加详细的信息。

perf script

Tom Zanussi 将 perl 和 python 解析器嵌入到 perf 程序中,从而使得 perf 能够自动执行 perl 或者 python 脚本进一步进行处理,从而为 perf 提供了强大的扩展能力。因为任何人都可以编写新的脚本,对 perf 的原始输出数据进行所需要的进一步处理。这个特性所带来的好处很类似于 plug-in 之于 eclipse

参考文档

1.Perf – Linux下的系统性能调优工具,第 1 部分 2.Perf – Linux下的系统性能调优工具,第 2 部分 3.perf Examples 4.Linux性能分析工具Perf简介 5.系统级性能分析工具perf的介绍与使用 6.CHAPTER 12. GETTING STARTED WITH PERF 7.Documentation/tools/perf/perf-probe.txt 8.Documentation/tools/perf/perf-lock.txt



【本文地址】


今日新闻


推荐新闻


CopyRight 2018-2019 办公设备维修网 版权所有 豫ICP备15022753号-3