# Linux Perf命令使用

Linux中的perf命令是一个强大的性能分析工具,它提供了多种子命令和选项来满足不同的性能分析需求。

大多数Linux发行版中,perf是内核的一部分,但需要通过软件包管理器进行安装。

sudo apt update

sudo apt install linux-tools-common linux-tools-$(uname -r)

# 使用

  • perf stat:统计程序运行时的硬件事件

sudo perf stat ./vf 

#  Performance counter stats for './vf':

#               1.69 msec task-clock                       #    0.695 CPUs utilized             
#                  1      context-switches                 #  591.533 /sec                      
#                  0      cpu-migrations                   #    0.000 /sec                      
#                114      page-faults                      #   67.435 K/sec                     
#          4,514,981      cycles                           #    2.671 GHz                       
#          3,828,810      instructions                     #    0.85  insn per cycle            
#            635,333      branches                         #  375.820 M/sec                     
#             17,397      branch-misses                    #    2.74% of all branches           

#        0.002433726 seconds time elapsed

#        0.001230000 seconds user
#        0.001230000 seconds sys

  • perf record:记录程序运行时的性能事件

  • perf top:实时显示系统中占用CPU最多的函数

  • 跟踪系统调用

perf trace ./your_program
  • 分析内核事件:perf sched可以用来分析内核中的调度事件,了解进程的调度行为。
perf sched
  • 列出事件
perf list
  • 如缓存命中率
sudo perf stat -e L1-dcache-load-misses,L1-icache-load-misses ./vf