Windows最好的免费c++分析器是什么?

我正在寻找一个分析器,以找到我的c++代码中的瓶颈。我想找一个免费的、非侵入性的、好的分析工具。我是一名游戏开发者,我在xbox 360上使用PIX,我发现它非常好,但它不是免费的。我知道英特尔VTune,但它也不是免费的。

193638 次浏览

CodeXL现在已经取代了行尾AMD代码分析师,两者都是免费的,但没有VTune高级。

还有困了,它非常简单,但在很多情况下都能完成任务。

注意:以上三个工具几年来都没有得到维护。

我已经使用“TrueTime”很多年了,它是Compuware开发伙伴套件的一部分。有一个[免费版本](你可以尝试Compuware DevPartner性能分析社区版)可用。

我使用AQTime,它是我使用过的最好的分析工具之一。 它不是免费的,但你可以得到30天的试用,所以如果你计划优化和分析一个项目,30天就足够了,那么我建议你使用这个应用程序。(http://www.automatedqa.com/downloads/aqtime/index.asp) < / p >

微软有Windows性能工具包

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

我使用VSPerfMon,这是一个独立的Visual Studio分析器。我编写了一个GUI工具来帮助我运行它并查看结果。

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

另一个分析器是闪亮的

​​​​​

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

免责声明:这是我写的。

很困了是一个用于Windows系统的C/ c++ CPU分析器(免费)。

请试试我的剖析软件cRunWatch。它只有两个文件,所以很容易与您的项目集成,并且只需要添加一行代码就可以完成一段代码。

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

需要Boost库。

有一个用于MS VC 7.1和更高版本的仪器(功能精确)分析器,称为MicroProfiler。你可以在这里得到它(x64)在这里(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());
}

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

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

我强烈推荐Windows性能工具包中的Windows性能分析器(WPA)部分。命令行Windows性能记录器(WPR)工具为Windows (ETW)日志记录事件跟踪,以后可以使用Windows性能分析工具进行分析。有一些很好的教程教你如何使用这个工具。

wpr.exe -start CPU
...
wpr.exe -stop output.etl
wpa.exe output.etl

我使用路加福音Stackwalker,它为我的Visual Studio项目做了这项工作。

其他有趣的项目有: