Catch up on stories from the past week (and beyond) at the Slashdot story archive


Forgot your password?

Code Profiling on AMD Systems? 35

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?"
This discussion has been archived. No new comments can be posted.

Code Profiling on AMD Systems?

Comments Filter:
  • Use VTune (Score:4, Insightful)

    by LLuthor ( 909583 ) <> on Sunday February 19, 2006 @03:53PM (#14755868)
    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.

    The intel tools are absolutely fantastic and integrate perfectly with VS and most other .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).

    I have't worked much with .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++.
    • Re:Use VTune (Score:1, Informative)

      by Anonymous Coward
      VTune Setup refuses to install on AMD computers.
    • The the follow-upper said, apparently VTune won't install on an AMD machine. But it still makes no sense to me- why would it matter what CPU is in use in a JIT/VM system like .NET? In the language I use (Squeak Smalltalk) which is similar enough to .NET, I use a built-in profiler that works on any CPU and any OS- it's written in Smalltalk itself, not some C app from the outside. Why wouldn't something like that exist for .NET?
      • Re:Use VTune (Score:3, Interesting)

        by Spy Hunter ( 317220 )
        I'm sure it has very little to do with VTune not working on AMD and everything to do with Intel's business types telling the engineers "don't support AMD". Did you know that recently Intel and Skype "collaborated" to cripple Skype's conference call features when running on a non-Intel chip? They don't need a good technical reason; this is business.
        • There's a very good technical reason for this: Intel and AMD have completely different performance counters on their processors. Each counter has its own microrachitectural- and implementation-specific bugs and quirks. As an example, the P6 performance counters look nothing like the P4's (both in the architectural interface and the implementation). The counters certainly aren't gospel and Intel is lucky when they can correctly use their own implementations (see the copious errata and footnotes on Intel's
  • Function optimization isn't processor specific, or am I missing something?

    Use VTune, BoundsChecker, valgrind (not Windows), Purify, gprof, or any other profiler.

  • 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.
  • by ArchMagus ( 32772 ) on Sunday February 19, 2006 @04:13PM (#14756004)
    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.
    • 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 s
  • reducing number of repeated calls to functions

    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?

    • He was talking about macro-optimization there, which is generally processor-independent. But he can't do it effectively with the AMD- and .NET-compatible tools that he has.
    • 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?

      What gave you the idea that this is what he asked? He asked to see if anyone knew of a good profiler for AMD processors, since obviously the Intel ones won't work (be it for marketing or technical reasons). He said that he wanted to profile his code, to find bottlenecks, not to find the different bottlenecks between AMD and Intel.

  • .NET profiling? (Score:3, Informative)

    by Spy Hunter ( 317220 ) on Sunday February 19, 2006 @04:22PM (#14756052) Journal
    NProf is free and works, though it won't win any awards. Visual Studio 2005 Team System (not professional) includes a code profiler.
  • by ZxCv ( 6138 ) on Sunday February 19, 2006 @04:38PM (#14756144) Homepage
    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
  • Your platform doesn't have the tools you want.

    U L
    • GNU/Linux - a printer driver gone horribly wrong

      The idea of GNU started with a printer driver. Linux started entirely independently as a terminal emulator. Get your facts straight before you poke fun. ;)
      • I know the facts mate,.

        Did you notice the GNU/Linux part ?

        August 1991
        ``Hello everybody out there using minix - I'm doing a (free) operating system (just a hobby, won't be big and professional like gnu) for 386(486) AT clones. I've currently ported bash(1.08) and gcc(1.40), and things seem to work. "

        If it wasn't for GCC and the GNU GPL, chances are there would be no Linux today, just a Minix clone.

        Linux set the industry back 20 years, but hey, we'll cope.
  • AutomatedQA's AQTime (Score:4, Informative)

    by mindsuck ( 607395 ) on Sunday February 19, 2006 @05:30PM (#14756458) Homepage

    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.

  • Ants (Score:2, Informative)

    by ncmusic ( 31531 )
    I've had really good luck with Ants []. I found it alot more intuitive than AQTune.
  • 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.

"I will make no bargains with terrorist hardware." -- Peter da Silva