Once in a blue moon, I'll profile an application. One reason why I don't do it more often is because Visual Studio's built-in profiler is so heavy-handed and complex to use that I really don't like dealing with it. As a result, I usually don't do any kind of performance profiling unless there is a clear problem, and I need to locate its cause.
A few months ago, I saw a demo of the dotTrace profiling tool from JetBrains at my local developer's group meeting. The application looked neat, and I liked the speed and simplicity of it. And then when I was speaking at the Charlotte ALT.NET developer's group, they offered me a free license to dotTrace or ReSharper (JetBrains gives them licenses to hand out as swag); since I already had a ReSharper license, I jumped on the dotTrace license. Now that I have had the chance to use the product a bit, I wanted to let you guys know what I think of dotTrace 3.1.
The first thing that jumped out at me about dotTrace was that it's easy to understand. It opens up to a simple screen asking me what kind of application I want to profile, and from there, it asks me application- and profile-specific questions, such what is the path to the executable and will I be looking at CPU or memory. A control window is brought up to allow snapshots to be taken as needed and to terminate the application if required. The profile information is displayed as snapshots are taken, and there are a variety of views to let you easily see what you need. If you point dotTrace to the .pdb files, it can integrate to the source code.
I was most struck by dotTrace's speed and simplicity. I'm used to the Visual Studio profiler, which really bogs down a system and generates massive trace files. While its results are very comprehensive, the application is just miserable to use. In comparison, dotTrace does not bog down the system and does not drop giant files all over the place. In addition, the terminology used throughout dotTrace and the interface makes it very easy to use. If you do get lost, you can thoroughly peruse the Help file in only a few minutes. One very useful tool is the ability to compare snapshots, which can help you analyze if changes you have made are helping or hurting performance.
I have not used any profiling tools outside of Visual Studio's very long, so it is hard for me to compare dotTrace's feature set to the overall market of profiling tools; however, I did feel that its features are more than enough to target performance and memory usage issues. If you are looking for an alternative to the Visual Studio profiler, give dotTrace a look. It has a 10-day evaluation available; pricing is $199 for an individual, non-commercial developer, $499 for a commercial development license, or $2,499 for a "floating license" for commercial usage.
J.JaDisclosure of Justin's industry affiliations: Justin James has a contract with Spiceworks to write product buying guides; he has a contract with OpenAmplify, which is owned by Hapax, to write a series of blogs, tutorials, and articles; and he has a contract with OutSystems to write articles, sample code, etc.
———————————————————————————————————————————-Get weekly development tips in your inbox Keep your developer skills sharp by signing up for TechRepublic's free Web Developer newsletter, delivered each Tuesday. Automatically subscribe today!
Justin James is an OutSystems MVP, architect, and developer with expertise in SaaS applications and enterprise applications.