C ++代码分析器

时间:2008-10-27 12:39:33

标签: c++ windows visual-studio profiler

有人可以为C ++推荐一个好的代码分析器吗?

我遇到了Shiny - 有什么好处? http://sourceforge.net/projects/shinyprofiler/

11 个答案:

答案 0 :(得分:9)

对于Unix / Linux

Callgrind

Windows的

DevPartner

答案 1 :(得分:7)

不是C ++特定的,但AMD的CodeAnalyst软件是免费的,并且功能丰富。

http://developer.amd.com/cpu/codeanalyst/codeanalystwindows/Pages/default.aspx

答案 2 :(得分:7)

Gprof如果您使用gcc。它可能不是用户友好的,但仍然有用。

答案 3 :(得分:6)

您可能会对Intel VTune感兴趣。相当有用,允许收集缓存未命中等低级事件,这有助于调整。

答案 4 :(得分:2)

如果您正在运行VS 2010的高级版本,那么您将获得一个分析器。

我还使用了其他一些免费的,但它们与MS船上没有比较。虽然有用作第二意见。

答案 5 :(得分:2)

Quantify(IBM / Rational PurifyPlus软件包的一部分)是一个非常好的分析器,但不是很便宜。它也可以在几个平台上使用 - 我在Solaris,Windows和Linux上使用它。

答案 6 :(得分:2)

取决于您需要做什么:

  1. 衡量,这样您就可以进行回归测试,看看是否发生了性能变化。
  2. 找出次优性能的原因并对其进行优化。
  3. 这些不一样。

    对于1,请使用推荐的分析器之一。

    对于2,我更喜欢的探测器是你已经拥有的探测器:
    http://www.wikihow.com/Optimize-Your-Program%27s-Performance
    To see how this goes, check this out.

    对于C ++,对于C#和任何鼓励抽象层的语言,从软件工程的角度来看,这些层可能会或可能不会很好,但它们会破坏性能。每个方法调用都会绕过程序的执行,而且样式会鼓励你嵌套这些东西,有时是不必要的。这种风格也不鼓励你了解或关心他们内心发生的事情。您可能会发现它们以一般性的速度和级别创建和删除对象,远远超出您的应用程序真正需要的范围。

答案 7 :(得分:2)

AQtime(适用于Windows)

答案 8 :(得分:0)

如果您有权访问Mac,我建议您使用CHUD工具中的Shark

答案 9 :(得分:0)

您可以在Linux或Solaris上使用Sun Studio 12中的分析器。免费。 http://developers.sun.com/sunstudio/index.jsp

答案 10 :(得分:0)

如果找不到DevPartner,那是因为我们已经在新的所有权下移动了。在Micro Focus网站上查看我们:http://www.microfocus.com/products/micro-focus-developer/devpartner/index.aspx。无耻的插件:我在DevPartner团队工作。我们期待已久的64位版本的BoundsChecker和C ++ / .NET剖析器于2011年2月4日发布。我们已经改变了我们的定价模式,因此您可以选择整个套件或只选择性能分析器(如果这就是您所需要的)。请在新的DPS 10.5发布时检查它!