For just code execution profiling, the more expensive versions of Visual
Studio include a reasonably good execution profiler. Unfortunately, it has
minimal memory profiling features, nothing like a real memory profiler.
There are third-party profiling tools as well. I'm not familiar with any
of them (Visual Studio has always suited my profiling needs), and I'm still
sore at Red Gate about their treatment of Reflector so I'm loathe to even
mention their profiling products. But they and others do have tools that
have good reputations.
Pete