We're in the early stages of a project I'm currently working on and we're starting to see some performance concerns. Since the piece that I wrote (The data access layer) is used pretty heavily, I decided to profile the application to see if there were any glaring bottlenecks.
I downloaded nprof from SourceForge and used that as the profiler. Overall, it was pretty easy to setup and use. My perception is that profiling with nprof didn’t add a lot of overhead to the profiled process.
When you’re done running a profile, you’re left with some pretty good statistics: # times a method was called, total percentage of total time spent in that method, total percentage time spent in the child method. These are all broken out by thread. You can view who called a particular method and what methods it calls. It would be nice if there was more information about the thread, such as the life of the thread and so forth.
Turns out there is a measurable amount of time in my data layer creating temporary serialization assemblies, so I’m going to rework it to use this method by Daniel Cazzulino
On the whole, it is a great tool. It’s unfortunate that there hasn’t been any refinement to it lately.