I have used NHibernate Profile on two large scale and high profile projects at two separate companies.
As CodeReadySolutions, VP of Development:
We built a stock analysis system that computes and performs adhoc searches against various stock metrics built around Phil Town's stock investing philosophy. Every query was tuned so that 95% of all queries were executed in less than 20 milliseconds and the remaining 5% completed in less than 100ms. Even with the high volume of users, every UI refresh (including spring and the web ui) completed in less than 1 second. Most of the time the screen refreshes appears to be instantaneous. What a huge win? Performance was never a question. This was due largely to the visibility provided by NhibernateProfiler.
As MyDealerLot RFID Solutions, Chief Technology Officer:
The principle job after starting at MyDealerLot was to fix scalability issues in the platform that were raised through VC funding. We worked around the clock for 3 months to fix the scalability issues by rewriting the entire application from scratch. NHibernateProfiler was key to nailing the performance issues. 95% of all Spring.net / NHibernate queries execute in < 10 milliseconds. %5 execute in < 25 milliseconds. I do not believe that we would have achieved such a high performing system without NHibernateProfiler. One of the serious great as aspect is showing both database time as well as the serialization time. Most profiling tools are finicky and require a lot of babying. This tool runs round the clock on my development system. It gets restarted when there are patches. I have never had a crash and it regularly runs 10 days or so at a clip in between Microsoft updates. I would have been in reading through thousands / millions of lines in the SQLProfiler and try to figure out what it was matched up to in the NHibernate layer. This takes you to the exact line in the C# code. What an incredible tool!