I second AQTime, having both AQTime and Compuwares DevPartner, for most cases. The reason is that AQTime will profile any executable file that has a valid PDB file, while TrueTime will require you to do an instrumental assembly. This greatly speeds up and simplifies ad hoc profiling. DevPartner is also a bit expensive if this is a problem. Where DevPartner comes to life, with BoundsChecker, which I still rate as a better tool for catching leaks and overwriting than the AQTimes runtime profiler. TrueTime may be much more accurate than AQTime, but I never found this to be a problem.
Profiling is worth it, IMO yes, if you need to improve performance in a local application. I think you will also learn a lot about how your program and algorithms work, as well as the costly consequences of using certain types of object classes to store and iterate through your data.
source share