适用于 Windows 的最佳免费 C++ 分析器是什么?[关闭]
题
我正在寻找一个探查器,以便找到我的 C++ 代码中的瓶颈。我想找到一个免费的、非侵入性的、良好的分析工具。我是一名游戏开发人员,我使用适用于 Xbox 360 的 PIX,发现它非常好,但它不是免费的。我知道英特尔 VTune, ,但它也不是免费的。
其他提示
普菲很酷: http://pauldoo.com/profy/
免责声明:我写了这个。
有一个适用于 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());
}
微软有 Windows 性能工具包.
它确实需要 Windows Vista, Windows Server 2008, 或 Windows 7。
一个新的补充是 闪亮的.
我强烈推荐 Windows 性能工具包 (WPT) 或者 XPERF
命令行 xperf 命令行工具记录 Windows 事件跟踪 (ETW) 日志,可以使用 GUI xperfview 工具进行分析。
使用 stacktrace 命令行争论 事实证明,它对我的公司来说是一个非常宝贵的工具,因为它可以分析和解决瓶颈问题。最引人注目的事情之一是 WPT 可以安装在任何环境中,甚至可以安装在古老的计算机上。 视窗XP.
在 Windows 8 Windows 性能分析器 将 xperf 提升到更高的水平。
ETW 日志中提供的硬数字和统计数据在细节上是无与伦比的,除了 Visual Studio Profiler (2010/2012),它也很棒,但不是免费的 AFAIK。
如果您从未使用过 xperf...您不知道自己错过了什么
我使用 AQTime,它是我用过的最好的分析工具之一。它不是免费的,但您可以获得 30 天的试用期,因此,如果您计划仅优化和分析一个项目,并且 30 天对您来说就足够了,那么我建议您使用此应用程序。(http://www.automatedqa.com/downloads/aqtime/index.asp)
请尝试我的分析器,名为 cRunWatch。它只有两个文件,因此很容易与您的项目集成,并且只需要添加一行即可检测一段代码。
http://ravenspoint.wordpress.com/2010/06/16/timing/
需要 Boost 库。
我多年来一直使用“TrueTime——Compuware DevPartner 套件的一部分。有一个[免费版本](您可以尝试 Compuware DevPartner Performance Analysis Community Edition。)。
我使用 VSPerfMon,它是独立的 Visual Studio Profiler。我编写了一个 GUI 工具来帮助我运行它并查看结果。
您可以使用 EmbeddedProfiler,它对于 Linux 和 Windwos 都是免费的。
探查器具有侵入性(就功能而言),但不需要任何代码修改。只需添加特定的编译器标志(对于 gcc/MinGW 为 -finstrument-functios 或对于 MSVC 为 /GH)并链接探查器的库。它可以为您提供完整的调用树或只是函数列表。它有自己的分析器 GUI。