动态分析可用的最快的分析器是什么(就像gprof做的那样)。分析器必须是一个探测分析器,或者即使它有采样分析器,我也很想知道探测分析器的开销,因为采样分析器可以用几乎0%的开销完成。
发布于 2013-01-22 19:49:56
任何使用基于硬件的采样的分析器(通过CPU PMSR)将具有最小的开销(因为它读取CPU在硬件级别跟踪的分析数据,有关更多信息,请参阅AMD & Intels架构手册,应在其中一个附录中对其进行深入解释)。
据我所知,只有英特尔的VTune (不是免费的)和AMD的CodeAnalyst (免费)在使用这些分析器。
接下来是基于定时器的分析器和基于事件的分析器,其中开销最小的可能是直接编译到代码中的分析器(CodeAnalyst有一个基于事件的应用程序接口,VTune也有)。gprof也属于这一类(Clang也有一些东西,但如果它还在维护的话)。如果你有VS Pro或Ultimate,它的PG编译模式会做类似的事情,尽管我从来没有发现它可以与专用的分析器套件进行比较。
最后是那些需要在代码中插入探针来确定其分析数据的工具,前面提到的所有工具都可以做到这一点,就像VerySleepy这样的其他免费软件分析器一样。
发布于 2013-01-22 18:32:40
英特尔的vtune amplifier可能是最完整的。
https://stackoverflow.com/questions/14456363
复制相似问题