我正在寻找一个分析器,以便找到我的C ++代码中的瓶颈。我想找一个免费,非侵入性和良好的分析工具。我是一名游戏开发人员,我使用PIX for Xbox 360并发现它非常好,但它不是免费的。我知道英特尔VTune,但它也不是免费的。
答案 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)
答案 10 :(得分:0)
我使用了“TrueTime - Compuware的DevPartner套件的一部分多年。有一个[免费版本](您可以尝试使用Compuware DevPartner性能分析社区版。)。
答案 11 :(得分:0)
我使用的是StandAlone Visual Studio Profiler的VSPerfMon。我编写了一个GUI工具来帮助我运行它并查看结果。
答案 12 :(得分:0)
您可以使用EmbeddedProfiler,它对Linux和Windwos都是免费的。
分析器是侵入性的(按功能),但它不需要任何代码修改。只需添加一个特定的编译器标志(-finstrument-functios用于gcc / MinGW或/ GH用于MSVC)并链接探查器的库。它可以为您提供完整的调用树或只是一个功能列表。它有自己的分析器GUI。