This could be a borderline advertisement, not to mention subjective, but the question is an honest one. For the last two months, I\'ve been developing a new open source profiler
My prefered profiler was "DevPartner Performance Analysis Community Edition" (http://researchlibrary.theserverside.net/detail/RES/1165507815_474.html?psrc=MPR), unfortunately it's no longer available.
What made it stand out against the competition was the graphical analysis that showed a box for the current selected method and outgoing connectors to called methods showing the percentage of time spend in each. Also connectors to incomming calls. Of course thos caling and called methods had the same and you could expand them as needed This way, you could navigate freely along your call stack, see the stack as deep as you want, and tackle the hot path in your fragment.
The second demand would be "ease of use", i.e. it should run with all relevant application types, windows exe, web app, windows service, WCF service, (Silverlight?), ... . And not only with tiny sample applications, but with enterprise sized not-so-trivial applications.