0

可用于动态分析的最快分析器是什么(如 gprof 所做的)。分析器必须是仪器分析器,或者即使它具有采样分析器,我也很想知道仪器分析器的开销,因为无论如何采样分析器可以以几乎 0% 的开销完成。

4

2 回答 2

1

任何使用基于硬件的采样(通过 CPU PMSR)的分析器都将具有最小的开销(因为它读取 CPU 在硬件级别跟踪的分析数据,有关更多信息,请参阅 AMD 和 Intel 架构手册,它们应该是在其中一个附录中进行了深入解释)。

我知道使用这些的唯一分析器是用于 Intel的VTune (非免费)和用于 AMD 的CodeAnalyst (免费)。

接下来是基于计时器的分析器和基于事件的分析器,其中开销最少的可能是直接编译到您的代码中的那些(CodeAnalyst 有一个基于事件的 API,VTune 也有)。gprof也属于这一类(如果仍然维护,Clang 也有一些东西,但 IDK ......)。如果你有 VS Pro 或 Ultimate,它的 PG 编译模式会做类似的事情,尽管我从来没有发现它可以与专用的分析器套件进行比较。

最后是需要在代码中插入探针以确定其分析数据的那些,所有上述的都可以做到这一点,以及其他免费软件分析器,如 VerySleepy。

于 2013-01-22T11:49:55.830 回答
0

英特尔的vtune 放大器可能是最完整的。

于 2013-01-22T10:32:40.237 回答