【发布时间】:2014-10-13 20:30:59
【问题描述】:
我打算收集 linux 应用程序执行的一小部分的统计信息。这个子集可以定义为前 n 个指令,或前 n 个周期。
对于定义的子集,我们对分支预测准确性、缓存命中率和内核的 IPC 等统计数据感兴趣。
perf 工具看起来是此类监控的最佳选择。但是,在 perf 中指定子集的方法是运行提供子集信息的命令。
示例:如果我想收集前 n 秒的数据,我必须运行以下命令。
perf stat -p PID 睡眠 n
在这里,我必须运行程序,然后使用它的 PID 将 perf 附加到该程序。 perf 使用 pid PID 收集进程的数据,直到 sleep 命令运行。 但是,从我的程序开始执行到 perf 附加到进程的时间,可能已经执行了 x 条指令。由于 x 是随机的,因此绝对无法知道 perf 分析了哪些指令。
如果有建议可以帮助我监控程序的执行
- 前 n 秒,或
- 从程序执行中的一个确定点(某个函数名或指令指针)
【问题讨论】:
-
你能破解程序的源代码吗?
-
你能做到吗?
-
@emotionull 我已经回答了这个问题。看看有没有帮助
标签: intel performance-testing performancecounter perf