我正在寻找一个分析器,以便找到我的C++代码中的瓶颈.我想找一个免费,非侵入性和良好的分析工具.我是一名游戏开发人员,我使用PIX for Xbox 360并发现它非常好,但它不是免费的.我知道英特尔VTune,但它也不是免费的.
CodeXL现已取代End of Line的AMD代码分析师,两者都是免费的,但不如VTune先进.还有Sleepy,这很简单,但在很多情况下都可以完成.
Very Sleepy是Windows系统的C/C++ CPU分析器(免费).
CppCheck是Windows系统的静态C/C++ CPU分析器(免费).
Proffy非常酷:http://pauldoo.com/proffy/
免责声明:我写了这个.
MS VC 7.1及更高版本的仪器(功能准确)分析器称为MicroProfiler.你可以在这里(x64)或这里(x86)得到它.它不需要对代码进行任何修改或添加,并且能够实时显示调用者和被调用者的函数统计信息,而无需关闭应用程序/停止分析过程.
它与VisualStudio集成,因此您可以轻松启用/禁用项目的分析.也可以将它安装在干净的机器上,它只需要将符号信息与被分析的可执行文件一起定位.
当非常困的采样分析器的统计近似不充分时,此工具非常有用.
粗略的比较显示,它胜过AQTime(当它在仪表,功能级别运行中调用时).以下程序(完全优化,内联禁用)运行速度快三倍,微型分析器实时显示结果,而AQTime只是简单地收集统计信息:
void f() { srand(time(0)); vectorv(300000); generate_n(v.begin(), v.size(), &random); sort(v.begin(), v.end()); sort(v.rbegin(), v.rend()); sort(v.begin(), v.end()); sort(v.rbegin(), v.rend()); }
Microsoft拥有Windows性能工具包.
它确实需要Windows Vista,Windows Server 2008或Windows 7.
Shiny是一个新成员.
我强烈推荐使用Windows性能工具包(WPT)或XPERF
命令行xperf命令行工具记录可以使用GUI xperfview工具分析的Windows事件跟踪(ETW)日志.
使用stacktrace命令行争论已经证明对我公司来说是一个非常宝贵的工具,因为它可以描述和排除瓶颈问题.其中一个最引人注目的事情是WPT可以安装在任何环境中,即使是在古老的Windows XP上也是如此.
在Windows 8上,Windows性能分析器将xperf提升到更高的水平.
除了视觉工作室分析器(2010/2012)之外,ETW日志中提供的硬数据和统计数据是无与伦比的,除了视觉工作室分析器(2010/2012),它也很棒但不是免费的AFAIK.
如果你从未使用过xperf ......你不知道自己缺少什么