什么是Windows最好的免费C++探查器?

uga*_*oft 220 c++ windows profile

我正在寻找一个分析器,以便找到我的C++代码中的瓶颈.我想找一个免费,非侵入性和良好的分析工具.我是一名游戏开发人员,我使用PIX for Xbox 360并发现它非常好,但它不是免费的.我知道英特尔VTune,但它也不是免费的.

yrp*_*yrp 132

CodeXL现已取代End of Line的AMD代码分析师,两者都是免费的,但不如VTune先进.还有Sleepy,这很简单,但在很多情况下都可以完成.

  • 以下是CodeAnalyst的链接:http://developer.amd.com/CPU/CODEANALYST/Pages/default.aspx (4认同)

lsa*_*mon 59

Very Sleepy是Windows系统的C/C++ CPU分析器(免费).
CppCheck是Windows系统的静态C/C++ CPU分析器(免费).

  • googletest是一个单元测试框架.你会如何使用它来执行分析? (20认同)

pau*_*doo 34

Proffy非常酷:http://pauldoo.com/proffy/

免责声明:我写了这个.


Art*_*rty 17

MS VC 7.1及更高版本的仪器(功能准确)分析器称为MicroProfiler.你可以在这里(x64)这里(x86)得到它.它不需要对代码进行任何修改或添加,并且能够实时显示调用者和被调用者的函数统计信息,而无需关闭应用程序/停止分析过程.

它与VisualStudio集成,因此您可以轻松启用/禁用项目的分析.也可以将它安装在干净的机器上,它只需要将符号信息与被分析的可执行文件一起定位.

当非常困的采样分析器的统计近似不充分时,此工具非常有用.

粗略的比较显示,它胜过AQTime(当它在仪表,功能级别运行中调用时).以下程序(完全优化,内联禁用)运行速度快三倍,微型分析器实时显示结果,而AQTime只是简单地收集统计信息:

void f()
{
    srand(time(0));

    vector<double> v(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());
}
Run Code Online (Sandbox Code Playgroud)


epo*_*ter 10

Microsoft拥有Windows性能工具包.

它确实需要Windows Vista,Windows Server 2008或Windows 7.

  • 怎么不免费?它是Windows SDK的一部分.我能够毫无问题地下载它.(不可否认,我们有一个MSDN订阅,所以有些人可能会有不同的体验.) (6认同)
  • 它不是免费的:( (2认同)

Bug*_*boy 7

Shiny是一个新成员.

​​​​​

  • 找不到可下载的二进制文件,只是源代码.不太方便. (3认同)

MW_*_*dev 5

我强烈推荐使用Windows性能工具包(WPT)XPERF

命令行xperf命令行工具记录可以使用GUI xperfview工具分析的Windows事件跟踪(ETW)日志.

使用stacktrace命令行争论已经证明对我公司来说是一个非常宝贵的工具,因为它可以描述和排除瓶颈问题.其中一个最引人注目的事情是WPT可以安装在任何环境中,即使是在古老的Windows XP上也是如此.

Windows 8上,Windows性能分析器将xperf提升到更高的水平.

除了视觉工作室分析器(2010/2012)之外,ETW日志中提供的硬数据和统计数据是无与伦比的,除了视觉工作室分析器(2010/2012),它也很棒但不是免费的AFAIK.

如果你从未使用过xperf ......你不知道自己缺少什么