17

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

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

4

11 回答 11

9

用于 Unix/Linux 的Callgrind

适用于 Windows 的开发伙伴

于 2008-10-27T12:57:19.100 回答
7

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

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

于 2008-10-27T12:45:15.803 回答
7

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

于 2008-10-27T13:59:28.023 回答
6

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

于 2008-10-27T13:53:33.683 回答
2

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

我还使用了其他几个免费的,但它们无法与 MS 船上的相比。不过作为第二种意见很有用。

于 2008-10-27T13:23:19.750 回答
2

Quantify(IBM/Rational PurifyPlus 包的一部分)是一个非常好的分析器,但并不便宜。它也可以在多个平台上使用——我已经在 Solaris、Windows 和 Linux 上使用过它。

于 2008-10-27T13:29:41.907 回答
2

取决于你需要做什么:

  1. 测量,因此您可以进行回归测试以查看性能是否发生变化。
  2. 找出性能欠佳的原因并优化它们。

这些不一样。

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

对于 2,我更喜欢的分析器是您已经拥有的:http:
//www.wikihow.com/Optimize-Your-Program%27s-Performance
要了解情况如何,请查看此。

对于 C++,对于 C# 和任何鼓励抽象层的语言,从软件工程的角度来看,这些层可能好也可能不好,但它们会降低性能。每个方法调用都是程序执行中的一个弯路,这种风格鼓励你嵌套这些东西,有时是不必要的。此外,这种风格会阻止你了解或关心它们内部发生的事情。您可能会发现他们在下面创建和删除对象的速度和通用性远远超出了您的应用程序真正需要的水平。

于 2009-03-09T17:13:24.987 回答
2

AQtime(适用于 Windows)

于 2009-06-01T13:38:18.030 回答
0

如果您可以使用 Mac,那么我建议您使用CHUD 工具中的Shark

于 2008-10-27T16:02:24.453 回答
0

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

于 2008-10-28T18:52:56.840 回答
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 版本上线时查看它!

于 2011-01-28T03:28:17.257 回答