C++代码分析器

17

什么平台?哪个C++编译器?需要免费的吗? - Roger Lipscombe
我正在使用Microsoft Visual C++ Express 2005,并且希望它是免费的,是的。 - andygeers
2
Shiny更像是一个性能分析库而不是一个分析器 - 您需要手动检测您的代码。除了重新链接之外,其他大多数提到的工具都允许无需更改代码进行分析。 - AShelly
11个回答

9

DevPartner的链接没有指向产品页面(被重定向了)。我找不到DevPartner的产品页面... - Klaim
请尝试访问存档页面:http://web.archive.org/web/20070927222542/http://www.compuware.com/products/devpartner/default.htm - Helen

7

你能在英特尔CPU上使用它吗? - quant_dev
我认为你可以,但是它很庞大而笨重。无论如何,这只是我的个人意见。 - Nick

7

Gprof 是用于gcc的工具。虽然用户体验可能不是很友好,但仍然非常实用。


6

也许你会对英特尔VTune感兴趣。它非常有用,可以收集低级事件,如缓存未命中,这在调优方面非常有帮助。


2

AQtime (适用于Windows)


2

如果您运行的是VS 2010的高级版本,则会附带一个分析器。

我也使用过其他几个免费工具,但它们与MS提供的不可比较。不过作为第二意见还是很有用的。


1
实际上,至少在VS2008中,您不能通过Pro版获得性能分析器 - 您必须获取更高级别的版本(例如Team版)。 - Timo Geusch
啊,我从未真正使用过VS2008。我们中的一些人被困在维护VC6遗留应用程序中。 - graham.reeds

2

Quantify(IBM/Rational PurifyPlus软件包的一部分)是一个非常好的性能分析器,但价格并不便宜。它可以在多个平台上使用 - 我曾在Solaris、Windows和Linux上使用过它。


2

根据您需要做什么:

  1. 测量,以便进行回归测试,以查看性能变化。
  2. 找出性能不佳的原因并进行优化。

这些不一样。

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

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

对于C++、C#和任何鼓励抽象层次的语言,这些层次可能有利于软件工程,但它们可能会破坏性能。每个方法调用都是程序执行中的一次绕路,而这种风格鼓励您嵌套这些东西,有时是不必要的。此外,这种风格也不鼓励您了解或关注它们内部发生的事情。您可能会发现它们在应用程序实际不需要的速率和泛化级别下创建和删除对象。


往往情况下,在堆栈上添加函数调用不会降低性能。这通常是人们在过早优化代码时陷入的许多陷阱之一。 - Jared
嗨,贾里德。问题不在于函数调用的成本微不足道,而在于一旦编写了调用,它们就绝对必要的心理作用。以下是它的表现方式:在大型软件中,堆栈的随机样本很容易达到10-30层深度。如果这10-30个调用中有任何一个不是绝对必要的,那么它的删除可以节省与其停留时间分数相同的时间。换句话说,如果在任何一个级别上,调用数量大约是绝对必要数量的1.5倍,并且在多个级别上都发生了这种情况,你就可以看到减速是指数级的。 - Mike Dunlavey
另一种说法是:优化器会费尽心思地削减一些低级指令,例如加、移动、跳转等。如果他们也能很好地削减调用指令,那将会节省大量资源。但不管怎样,这并不是编译器的工作,而是我们自己的责任。 - Mike Dunlavey
抱歉,我忍不住了。换句话说,函数调用是强大的抽象概念的核心。这种力量的代价是它们强烈地引诱我们把小事变成大问题。我们程序员还没有真正学会如何抵制这种诱惑。 - Mike Dunlavey
1
另一种表达方式 :-) 函数调用就像信用卡。信用卡的成本是多少?一些塑料材料,一些处理费用,一些市场营销 - 也许只有一美元。真正的成本在于它使用起来非常容易,以至于你会花费超过自己的负担能力。如果在多个层面上都这样乘以,问题就显而易见了。 - Mike Dunlavey

0

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


0
如果您有Mac电脑,我建议使用CHUD工具中的Shark

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接