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


当前回答

微软有Windows性能工具包。

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

其他回答

CodeXL现在已经取代了End Of Line'd AMD Code Analyst,两者都是免费的,但没有VTune先进。

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

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

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

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

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

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

免责声明:这是我写的。

我强烈推荐Windows性能工具包中的Windows性能分析器(WPA)。WPR (Windows Performance Recorder)命令行工具可以记录ETW (Event Tracing for Windows)日志,以便后续使用Windows性能分析工具进行分析。有一些很好的教程教你如何使用这个工具。

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