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

时间:2008-09-15 22:15:11

标签: c++ windows profile

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

13 个答案:

答案 0 :(得分:130)

CodeXL现已取代了End'd Line'd AMD Code Analyst并且两者都是免费的,但不如VTune先进。还有Sleepy,这很简单,但在很多情况下都能胜任。

答案 1 :(得分:59)

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

答案 2 :(得分:34)

Proffy很酷:http://pauldoo.com/proffy/

免责声明:我写了这封。

答案 3 :(得分:16)

MS VC 7.1及更高版本的仪器(功能准确)分析器称为MicroProfiler。 You can get it here (x64)here (x86)。它不需要对您的代码进行任何修改或添加,并且能够在实时中显示与呼叫者和被叫者的功能统计信息,而无需关闭应用程序/停止分析过程。

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

当像Very Sleepy这样的采样分析器的统计近似不充分时,此工具非常有用。

粗略的比较显示,它胜过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());
}

答案 4 :(得分:10)

Microsoft拥有Windows Performance Toolkit

它需要Windows Vista,Windows Server 2008或Windows 7。

答案 5 :(得分:7)

新增加Shiny

答案 6 :(得分:5)

我强烈推荐Windows Performance Toolkit (WPT) XPERF

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

使用stacktrace command line arguement已经证明对我公司来说是一个非常宝贵的工具,因为它可以解决瓶颈问题并解决问题。其中一个最引人注目的事情是WPT可以安装在任何环境中,即使是在古老的 Windows XP 上也是如此。

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

ETW日志中提供的硬数据和统计数据是无与伦比的,除了visual studio profiler(2010/2012),它也很棒但不是免费的AFAIK。

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

答案 7 :(得分:3)

我使用的是AQTime,它是我用过的最好的分析工具之一。 它不是免费的,但您可以获得30天的试用期,因此如果您计划仅对一个项目进行优化和分析,并且30天就足够了,那么我建议您使用此应用程序。 (http://www.automatedqa.com/downloads/aqtime/index.asp

答案 8 :(得分:2)

答案 9 :(得分:1)

我使用了Luke Stackwalker,它完成了我的Visual Studio项目的工作。

其他有趣的项目是:

答案 10 :(得分:0)

我使用了“TrueTime - Compuware的DevPartner套件的一部分多年。有一个[免费版本](您可以尝试使用Compuware DevPartner性能分析社区版。)。

答案 11 :(得分:0)

我使用的是StandAlone Visual Studio Profiler的VSPerfMon。我编写了一个GUI工具来帮助我运行它并查看结果。

http://code.google.com/p/vsptree/

答案 12 :(得分:0)

您可以使用EmbeddedProfiler,它对Linux和Windwos都是免费的。

分析器是侵入性的(按功能),但它不需要任何代码修改。只需添加一个特定的编译器标志(-finstrument-functios用于gcc / MinGW或/ GH用于MSVC)并链接探查器的库。它可以为您提供完整的调用树或只是一个功能列表。它有自己的分析器GUI。