性能测量工具“perf”实际上是如何工作的?

性能测量工具“perf”实际上是如何工作的?

性能是一种访问机器的性能计数器寄存器并向用户提供指标以分析系统性能的工具。

我很好奇的是,当我阅读部分代码时。我看到 perf 从内存映射区域读取某些内容(我觉得它读取了内核写入的区域),它也在读取 /proc/modules,但我找不到与实际读取硬件寄存器相关的任何代码机器。

  • perf 实际上如何记录它的样本?
  • 它如何识别可执行文件正在执行什么函数?
  • 它是如何认识这些符号的?

内核是否也有一个 perf 模块(除了 /tools 来传达在用户空间中运行的应用程序“perf”)?

谁能详细介绍一下内部运作情况吗?

相关内容