可用于动态分析的最快的分析器是什么(就像gprof所做的那样)。探查器必须是一个检测分析器,或者即使它有采样分析,我也很想知道检测分析的开销,因为无论如何都可以用几乎0%的开销进行采样分析。
答案 0 :(得分:1)
使用基于硬件的采样(通过CPU PMSR)的任何分析器将具有最小的开销(因为它读取CPU在硬件级别跟踪的分析数据,有关更多信息,请参阅AMD& Intels Architecture手册,应在其中一个附录中深入解释。
我知道使用这些的唯一分析器是VTune代表英特尔(非免费)和CodeAnalyst代表AMD(免费)。
接下来将是基于计时器的分析器和基于事件的分析器,其中开销最小的分析器可能是直接编译到代码中的代码(CodeAnalyst具有基于事件的API,VTune也是如此)。 gprof也属于这一类(Clang除了IDK之外还有一些东西,如果它仍然保持......)。如果你有VS Pro或Ultimate,它的PG编译模式会做类似的事情,虽然我从未发现它与专用的探查器套件相比。
最后一个是那些需要在您的代码中插入探针以确定其分析数据的方法,所有上述方法都可以做到这一点,以及其他免费软件分析器,如VerySleepy。
答案 1 :(得分:0)
英特尔的vtune amplifier可能是最完整的。