Code Profiling on AMD Systems?
streak writes "After looking around at some profilers for AMD chips (I'm currently developing on Windows .NET so oprofile, dtrace, and other open source profilers are out) like AMD's CodeAnalyst and Microsoft's .NET Profiler, I've seen nothing that even comes close to being useful for function timing, call graphs, and the like. I'm not looking for micro-optimization (i.e. assembly tweaking - I am after all in .NET), but more for macro-optimization (identifying slow functions, reducing number of repeated calls to functions, etc). What I'm comparing all these tools to is VTune (which is Intel only). What do people use for profiling on AMD systems on Windows? Do you develop on an Intel box, do macro-optimization with VTune, and then just run that code on the AMD system?"
If you prefer working with VTune, just use VTune. At a high level, it doesn't matter whether you are working on an AMD or Intel CPU since the .NET JIT code will be almost identical.
.NET tools. Its not worth your time and effort to use inferior products just for the sake of using AMD hardware. Just profile your code on an intel box and depoly on any box (since .NET doesn't care).
.NET, but for C++ nothing beats intel's C++ compiler and profiling tools. Even though I strongly prefer AMD hardware (I don't use laptops much), I keep a few intel boxes around for developing high performance C++.
The intel tools are absolutely fantastic and integrate perfectly with VS and most other
I have't worked much with
LL
Why not go ask Microsoft?
Function optimization isn't processor specific, or am I missing something?
Use VTune, BoundsChecker, valgrind (not Windows), Purify, gprof, or any other profiler.
???
The ratio of people to cake is too big
Didn't you notice he mentioned CodeAnalyst in the summary and said it didn't come close to other tools?
Seriously did you even read the blurb?
He said he looked at CodeAnalyst and it sucked.
especially at a macro level.
At a micro level you will get into all kinds of problems with different memory timings (especially on dual+ socket systems), but macro level you can't beat the complier that comes with VTune.
I have mod points and I am not afraid to use them
"After looking around at some profilers for AMD chips ... like AMD's CodeAnalyst and Microsoft's .NET Profiler, I've seen nothing ..."
Learn to read, Quick Draw.
Seriously, have you?
He mentioned CodeAnalyst in the first sentence or too. I've used it before and it's not all that great.
I'll subscribe to Slashdot when I see a month without a dupe, a typo, or an article the "editors" didn't read.
Exactly, what part of "After looking around at some profilers for AMD chips [...] like AMD's CodeAnalyst and Microsoft's .NET Profiler, I've seen nothing that even comes close to being useful", you don't understand? :)
I've had some fairly good experiences with the Profiling portion of DevPartner (used to be TrueTime from NuMega.) The call graphs are very easy to navigate, and the data is quite digestable (the coverage analysis is quite nice too.)
I don't think it's cheap, but I've never seen a more elegant solution.
What gave you the idea that a program running on AMD will make a different number of function calls than the same program running on Intel?
Dewey, what part of this looks like authorities should be involved?
NProf is free and works, though it won't win any awards. Visual Studio 2005 Team System (not professional) includes a code profiler.
main(c,r){for(r=32;r;) printf(++c>31?c=!r--,"\n":c<r?" ":~c&r?" `":" #");}
The same company that makes the java IDE IntelliJ IDEA makes a profiler for .NET called dottrace profiler that is very good for .NET apps. It has helped me identify and fix a long list of problems in the .NET apps that I have to maintain. I would highly recommend it. You can find it yourself on the front of jetbrains.com.
Perl - $Just @when->$you ${thought} s/yn/tax/ &couldn\'t %get $worse;
> I'm a fucking moron, how do I tie my shoes?
Since you havent provided any more details I'm asuming you want to run barefeet. There are no shoelaces involved.
Please consult your local high voltage line.
Your platform doesn't have the tools you want.
U L
There are places where the networks are not touching,and there are places where they are-Boeing's Lori Gunter
Check out AQTime.
I use it for profiling big multi-threaded client/server applications and it usually comes in handy at spotting memory leaks and the bottlenecks in the code.
I use it with Delphi's native win32 compiler, but it supports a wide array of platforms. I believe it supports everything you need on .NET and the price tag is quite affordable.
--- I w00t, therefore I'm l33t.
Ouch! I shouldn't have missed that part.
You refuse to consider any open source solution because you love shoving Windows.NET up your ass, but you don't have a problem with asking slashdot to help you out (but don't suggest any of those open source bull shit solutions because I refuse to use them HURRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRRR RRR).
I've had really good luck with Ants. I found it alot more intuitive than AQTune.
If a commercial tool is an option...
I've used both DevPartner Profiler (aka TrueTime) and Rational/IBM's Quantify. Both were roughly the same in functionality. They were both somewhat flakey at times as well (crashing, wrong results, no results).
DevPartner Suite was reasonably priced and, if I recall, contained a more tools in its suite (compared to Rational Purify Plus -- which Quantify is a part). It's always a struggle to get to work in my experience and I often have to spend lots of times messing with settings and excluding certain 3rd party DLLs from the profile run to get correct (or ANY) results. This was with Windows C++ development, I'm sure Java/.NET stuff don't suffer these problems.
Quantify (part of Purity Plus) seemed a little less buggy (but still had issues), but pricing was expensive and complicated (like all Rational tools).
Visual Studio Team System for Developers has a pretty good profiler that supports call timing and allocation charts. It doesn't have any graphs though.
Kudos for admitting your mistake.
dunno if it works on AMD, but Rational Quantify has been going for donkeys years, and is supported on many popular chips.