瑞士军刀级的系统性能调优工具Perf,经典实用
   来源:AnyTopOne     2020年09月28日 13:59

Perf 是用来进行软件性能统计和分析的工具,它是一款随 Linux 内核代码一同发布和维护的性能诊断分析工具,Perf 既可以对应用程序的性能进行统计和分析,也可以对内核代码的性能进行统计和分析,从而全面分析和找到应用程序中的性能瓶颈所在,号称进行性能分析的 “瑞士军刀”。

举例:

测试程序代码见下图

1、perf stat 对 test.c 程序进行整体的分析

perf stat ./test

task-clock(msec):CPU 使用用率,该值越高,说明耗费的 CPU 越多

context-switches:进程切换的次数,应该避免过高的进程切换次数。

CPU-migrations: CPU 迁移的次数,即被调度器从一个 CPU 转移到另一个 CPU 上运行的次数。

page-faults:处理器中产生的 “页面错误” 的数量

cycles:CPU时钟,即程序运行需要多少个时钟,

instructions: 程序运行执行机器指令的数量。

branches:处理器分支预测的使用率情况

branch-misses: 处理器分支预测的失败率,该值越高CPU性能使用越低

2、perf top 可以查看当前系统最耗时的内核函数或某个进程信息情况

3、perf record 和 perf report 根据 CPU 使用率情况更加细粒度的进行性能的分析

perf record –e cpu-clock ./test

perf -g report

小结:

perf性能调优工具功能非常的强大,子命令也非常的多,大家可以 man perf 和 perf --help 仔细研究学习下,当需要优化程序的时候非常的实用

作者简介:

AnyTopOne 是一个开源软件(Free and Open-Source Software) 爱好者,先后从事Linux系统管理、程序开发、大规模平台架构设计、团队管理等工作,从业经验13年有余,具有丰富的IT行业从业经验,喜欢与其大家干货经验分享与交流。

作者:AnyTopOne

瑞士军刀 性能 次数