什么是最快的仪器分析器

Posted

技术标签:

【中文标题】什么是最快的仪器分析器【英文标题】:What is the fastest instrumentation profiler out there 【发布时间】:2013-01-22 10:27:14 【问题描述】:

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

【问题讨论】:

FYI 【参考方案1】:

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

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

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

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

【讨论】:

【参考方案2】:

英特尔的vtune amplifier 可能是最完整的。

【讨论】:

@user1018562:最小,我最后一次使用它。不过它很贵。 最小,比如接近 0%?价格是多少? @user1018562:我不能说我曾经测量过它。我从来没有找到一个可以很好地运行代码的采样分析器,而且我绝对没有获得从缓存未命中到处理器停顿到建议的代码改进等丰富的信息。

以上是关于什么是最快的仪器分析器的主要内容,如果未能解决你的问题,请参考以下文章

如何从时间分析器仪器中导出 cpu 使用情况

仪器(泄漏/活动监视器/时间分析器等)无法启动 - 发生了啥?

基于CY7C68013A-56LTXC的逻辑分析仪

分析仪结果与仪器泄漏:iPhone 内存泄漏

BLE入门 20 蓝牙5速率分析

想知道如何在 Xcode 中仅显示地址的仪器时间分析器中知道符号