【问题标题】:Is there any good tool/framework to profile performance for C/C++ application [closed]是否有任何好的工具/框架来分析 C/C++ 应用程序的性能 [关闭]
【发布时间】:2013-01-09 19:40:16
【问题描述】:

我是 C/C++ 新手,面临程序运行速度非常慢的性能问题。我想找到热点是减少我的代码的整体执行时间。 在 Windows 中分析 C/C++ 应用程序的最流行和最简单的方法是什么? 使用Mini Proler 分析 .NET 应用程序是多么容易让我感到非常惊讶。我们是否有任何类似的 C/C++ 库,可以通过最少的添加代码为我们提供高质量和可靠的结果? 或者是否有任何类似于RedGate ANTS performance profiler 的工具也可以提供有关正在运行的代码的深入信息?

【问题讨论】:

标签: c++ c windows performance profiling


【解决方案1】:

Intel 的 VTune 或 AMD 的 CodeAnalyst 都是非常好的工具。在 Linux 上,Perf 或 OProfile 会做同样的事情。

【讨论】:

    【解决方案2】:

    在寻找分析器时,请在调试器 IDE 和 try this method 中运行该程序。

    一些程序员依赖它。有一个例子here 是如何使用的。

    在这个例子中,发生了什么。一系列问题被发现并排除。

    • 第一次迭代节省了 33% 的时间。 (加速因子 1.5)

    • 在剩余时间中,第二次迭代节省了 17%。 (加速因子 1.2)

    • 在剩余时间中,第三次迭代节省了 13%。 (加速因子 1.15)

    • 在剩余时间中,第四次迭代节省了 66%。 (加速因子 2.95)

    • 在剩余时间中,第五次迭代节省了 61%。 (加速因子 2.59)

    • 在剩余时间中,第六次迭代节省了 98%。 (加速因子 45.9)

    所有那些大百分比的变化都不是原始时间的大百分比,但是在其他问题被消除后它们变得如此。 从原始程序中节省的总时间超过 99.8%。 加速了 730 倍。

    大多数没有经过这样的过程的程序都有很多加速空间,但你不可能只使用分析器来实现这一点,因为它们所做的只是进行测量。他们并不总是向您指出您需要解决的问题,而您错过的每个问题都会使您无法获得真正显着的加速。

    换句话说,最终的加速因子是所有这些个体因素的乘积,如果其中任何一个被遗漏,它不仅会从产品中消失,还会减少以下因素。 这就是为什么在性能诊断中,“足够好”还不够好。 你必须找到每一个问题。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2011-04-08
      • 1970-01-01
      • 1970-01-01
      • 2012-01-07
      • 2010-09-10
      • 2012-10-16
      • 1970-01-01
      相关资源
      最近更新 更多