我有一个复杂的应用程序,分多个阶段执行。我只想介绍其中一个阶段。
C++ 应用程序在 Linux x86-64 上运行。
该程序需要几分钟才能运行。如果我使用 perf 来分析整个事情,则生成的数据集太大,无法处理 perf 报告。然而,此时我只对分析程序的一个阶段的执行感兴趣,该阶段可能花费总时间的 1/3。也许这个数据集更容易让性能报告。
理想情况下,我想要类似“向自己发送 SIGUSR1 来开始分析,并发送 SIGUSR2 来停止它”。那时,我可以轻松地描述我想要的配置信息的执行阶段。
我总是可以使用 SIGPROF 编写自己的(尽管是基本的)分析器,但是有没有办法可以使用现有的工具(例如 perf)来做到这一点?