it-swarm.cn

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

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

216
ugasoft

CodeXL 现在已经取代了End of Line'd AMD Code Analyst 并且两者都是免费的,但不像VTune那样先进。还有 Sleepy ,这很简单,但在很多情况下都可以完成。

130
yrp

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

59
lsalamon

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

免责声明:我写了这个。

34
pauldoo

有一个用于MS VC 7.1及更高版本的仪器(功能准确)分析器,称为MicroProfiler。 你可以在这里(x64)这里(x86) 。它 不需要任何修改或添加 您的代码,并且能够在 real-time 中显示与调用者和被调用者的函数统计信息,而无需关闭应用程序/停止分析过程。

它与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());
}
16
Arty

Microsoft拥有 Windows性能工具包

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

10
epotter

新增的是 Shiny

7
Buggieboy

我强烈推荐 Windows性能工具包(WPT) _ xperf _

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

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

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

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

如果你从未使用过xperf ......你不知道你错过了什么

5
MW_dev

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

3
dudico

请尝试我的探查器,称为cRunWatch。它只是两个文件,因此很容易与您的项目集成,并且需要添加一行来检测一段代码。

http://ravenspoint.wordpress.com/2010/06/16/timing/

需要Boost库。

2
ravenspoint

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

其他有趣的项目是:

1
INS

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

0
Harold Ekstrom

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

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

0
Mi-La