C++ Code Profiler

我是研究僧i 提交于 2019-11-27 01:08:21

问题


Can anybody recommend a good code profiler for C++?

I came across Shiny - any good? http://sourceforge.net/projects/shinyprofiler/


回答1:


Callgrind for Unix/Linux

DevPartner for Windows




回答2:


Not C++ specific, but AMD's CodeAnalyst software is free and is feature-packed.

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




回答3:


Gprof if you use gcc. It may not be user friendly but still useful.




回答4:


Probably you will be interested in Intel VTune. Rather useful and allows to collect low-level events like cache misses which helps a lot in tuning.




回答5:


Quantify (part of the IBM/Rational PurifyPlus package) is a very good profiler, but not exactly cheap. It is available on several platforms, too - I've used it on Solaris, Windows and Linux.




回答6:


Depends on what you need to do:

  1. Measure, so you can do regressions testing to see if changes in performance happened.
  2. Find reasons for suboptimal performance and optimize them.

These are not the same.

For 1, use one of the recommended profilers.

For 2, the profiler I much prefer is one you already have:
http://www.wikihow.com/Optimize-Your-Program%27s-Performance
To see how this goes, check this out.

For C++, as for C# and any language that encourages layers of abstraction, those layers may or may not be good from a software engineering standpoint, but they can kill performance. Every method call is a detour in the execution of your program, and the style encourages you to nest those things, sometimes needlessly. Also the style discourages you from knowing or caring what goes on inside them. You may find them creating and deleting objects underneath at a rate and level of generality far beyond what your application really needs.




回答7:


AQtime (for Windows)




回答8:


If you are running a Premium version of VS 2010 then you get a profiler with it.

I've also used a couple of other free ones, but they don't compare to the on MS ships. Useful as a second opinion though.




回答9:


If you have access to a Mac, then I recommend using Shark from the CHUD tools.




回答10:


You can use the analyzer that´s in Sun Studio 12 on Linux or Solaris. Itś free. http://developers.sun.com/sunstudio/index.jsp




回答11:


If you cannot locate DevPartner it is because we've moved under new ownership. Check us out on the Micro Focus website: http://www.microfocus.com/products/micro-focus-developer/devpartner/index.aspx. Shameless plug: I work on the DevPartner team. Our long awaited 64-bit versions of BoundsChecker and C++/.NET profilers ship on February 4, 2011. We've changed our pricing model so you can choose either the whole suite or just the performance profiler if that's what you need. Please check out the new DPS 10.5 release when it goes live!



来源:https://stackoverflow.com/questions/239742/c-code-profiler

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!