Over the years as a developer, I’ve written code in many languages and many environments. Currently, my preference (and most of my work) is all in Visual Studios and C#. I like the rich feature set of Visual Studios and find C# concise, easy to read and write and versatile enough to let me control what I want to control while letting the run time manage a lot of the stuff I don’t care to control. Visual Studios has a great debugger and some powerful built-in profiling tools that help you drill into what your code is doing and where it is spending its time.
Recently though I have become interested in what kind of 3rd party tools were available to dig into my applications and give me a different perspective on my app’s performance. As expected for technology as well established as .Net, a quick Google search turned up a plethora of different tools with different features, use cases, levels of complexity and cost. Two free tools that quickly caught my eye are PerfView and CodeTrack.
- PerfView – Comes highly recommended, heck from what I’ve read Microsoft Engineers even use it to identify bottlenecks and improve performance. It uses Event Tracing For Windows (ETW) and provides you with a deep understanding of your code. To sweeten the pot, even more, it will also do Memory and Processor usage profiling. One word of warning that was echoed by multiple sources is that PerfView has a steep learning curve. However, there are some helpful tutorials available to help you get started.
- CodeTrack – Touts itself as a free tool that not only profiles your code but also allows you to analyze and debug executing code. It is intended to run as a standalone or portable app in that it requires no installation. All you need to run it is its one executable, and you are ready to go. CodeTrack gives you an extremely detailed view of the execution of your code and allows you to do a post mortem analysis of your code. One thing to note is that while CodeTrack is free, its author does ask for a donation to help support their efforts. If a tool is well written and helpful a donation to the developer is the least I can do.
Both tools look powerful and to be exactly what I was looking for. Now the next step is to use them to dig into some code, but that will be another post.