
Perf性能分析
文章平均质量分 96
性能分析是程序员必须掌握的技能,使用perf就像是进行一场实验,结果往往是充满未知,这听起来挺有趣吧。
Once-Day
长路漫漫,一人太孤单,无人理解,独自前行,给世界留下一点微不足道的痕迹,稍微弥补曾经的遗憾。
展开
-
linux之perf(17)PMU事件采集脚本
perf是 Linux 内核提供的性能分析工具,用于监控和分析 CPU、缓存、内存、I/O 等系统性能指标。常用于统计 CPU 使用情况,分析函数调用热点(热点分析),监测硬件事件(如缓存未命中、指令执行),发现性能瓶颈。perf stat是perf的子命令,用于统计系统或进程的性能指标,比如指令执行数、CPU 时钟周期、缓存未命中等。选项作用-e <event>指定监测的事件(如cycles-a监视整个系统-C <cpu>监视指定 CPU-p <pid>监视指定进程-I <ms>每ms。原创 2025-02-22 21:52:16 · 1902 阅读 · 51 评论 -
linux之perf(8)annotate标注
命令用于读取perf.data文件(由命令创建)并显示注释后的代码。该命令读取输入文件并显示注释后的代码版本。如果目标文件具有调试符号,则源代码将与汇编代码一起显示。如果对象中没有调试信息,则会显示注释后的汇编。假设你已经使用命令创建了一个perf.data文件,你可以使用在这个例子中,将从perf.data文件中读取数据,然后显示注释后的代码。如果你想查看特定符号的注释代码,你可以在命令后面添加符号名。在这个例子中,将只显示与符号相关的注释代码。原创 2023-10-19 23:10:53 · 1825 阅读 · 0 评论 -
linux之perf(6)report报告
命令是一种性能分析工具,用于读取创建的perf.data文件,然后显示性能分析报告。perf report [选项]其中,选项-i 或--input=:从指定的文件中读取数据,而不是默认的perf.data文件。-F 或--fields=:选择要在报告中显示的字段。-s 或--sort=:选择按照哪个字段对报告进行排序。例如,如果你想读取一个名为,显示不同CPU模式下的样本百分比。的选项用于显示不同CPU模式下的样本百分比。原创 2023-09-24 21:51:56 · 3457 阅读 · 0 评论 -
Linux之perf(7)配置
介绍了perf test/version/config等基础配置类命令原创 2023-09-24 00:04:30 · 481 阅读 · 0 评论 -
linux之perf(5)record记录
这个命令会运行一个命令,并从中收集性能计数器的信息,将其存储到perf.data文件中,过程中并不显示任何内容。然后,你可以使用命令在后续进行审查这个文件。这里有一个简单的例子:首先,我们运行$ perf record -F 99 -p 12345 # 99 是采样率,12345 是进程ID上述命令会将性能数据存储到perf.data文件中。然后,我们可以使用$ perf report # 这会显示 perf.data 文件中的信息默认会读取perf.data。原创 2023-09-24 15:51:39 · 1889 阅读 · 0 评论 -
linux之perf(4)stat统计
perf是Linux内核提供的一个强大的性能分析工具,用于测量和分析系统和应用程序的性能。perf stats是perf工具中的一个命令,用于收集并显示执行特定命令的统计信息。perf stat当你运行perf stat命令时,它会在命令执行结束后显示一些统计信息,包括CPU周期、指令数、缓存引用、缓存未命中等。下面是一些常见的perf stat-e--event:用于指定要测量的事件。你可以指定多个事件,用逗号隔开。-p--pid:用于指定要测量的进程ID。-r--repeat。原创 2023-09-17 17:06:28 · 2123 阅读 · 0 评论 -
linux之perf(3)top实时性能
该命令用于实时显示系统中占用CPU时间最多的函数,监控程序运行时的CPU利用情况,了解系统中哪些函数或代码片段对性能影响最大。perf top是 Linux 性能分析工具perf的一部分,主要用于动态地展示占用最多 CPU 时间的函数或程序。最简单的使用方式就是直接运行perf top命令。这将会展示系统中所有的进程和函数,按照它们占用 CPU 时间的百分比降序排列。$ perf top如果你想要只关注特定的进程,你可以使用-p选项,后面跟上进程的 PID:你可以使用-e选项来指定一个特定的性能事件。原创 2023-09-08 00:39:18 · 3471 阅读 · 0 评论 -
linux之perf(2)list事件
perf list用于列出可用的性能事件,这些事件可以用于和其他perf子命令的性能分析。性能事件包括硬件事件(如 CPU 周期、缓存未命中等)、软件事件(如上下文切换、页面错误等)和跟踪点事件(如内核函数调用、用户空间应用程序的跟踪等)。上面是在linux kernel6.2版本的perf list帮助输出,perf工具和linux内核以及硬件高度绑定,因此不同的内核版本,虚拟机,硬件环境下,perf list的输出会有较大差别。许多性能事件是否可用,需要取决于当前硬件和软件环境。原创 2023-09-03 16:41:15 · 1936 阅读 · 0 评论 -
Linux之perf(1)基础知识总结
Linux perf工具是一款强大的性能分析工具,适用于帮助开发者优化软件性能。它源于Linux内核,为了提供详尽的性能数据,开发者需要深入了解其背景知识和性能事件。perf工具的核心组件是基于Linux内核的性能计数器子系统,它可以追踪CPU性能事件,如缓存命中、分支预测错误等。通过perf,开发者能够定位性能瓶颈,从而进行针对性的优化。性能事件可以分为硬件事件、软件事件和跟踪点。原创 2023-06-11 22:54:36 · 1873 阅读 · 0 评论