Matt Watson / Founder & CEO / Stackify
Our fridge at home is always full. This is generally a good thing. The downside is, it’s hard to find stuff in a fridge that’s been packed to survive an apocalypse. When I can’t find something, there’s a chance someone finished it off. However, certain items are simply MIA; some sort of Bermuda Triangle phenomenon. In fact, on a recent snack-finding mission I finally found the leftover carbonara I’d been hunting for weeks. Unfortunately, it now looked more like an aged wookie than a meal. Isn’t coding just that way? No one wants to deal with bugs, but if you can find them early on, you can deal with them before things get out of hand. The longer it takes to find them, the hairier and gnarlier things can get. The sad fact is, finding app issues is often harder than finding the grape jelly or the last deviled egg. While there is no hope for my fridge (aka the “Upside Down”), there are some great tools available for finding nasty code issues before they sprout hair or spawn putrescent Gremlins or something.
Hooray for Profilers!
I love code profilers. I’ve dedicated the last several years of my career to code profiling technology. In my experience, there are three types of profilers:
1. High Level:
A high level profiler tracks performance key methods in your code. These profilers typically handle transaction timing, such as tracking how long a web request takes, while also giving you visibility to errors and logs. This is generally what you want on a server to track the performance of your app when you have thousands of users logged in. Because they are very high level, they are very low overhead. These are generally known as APM products. Specific products include: • Retrace (Stackify) • New Relic • Application Insights (MSFT)
2. Low Level:
Low level profiling usually tracks performance of every single method in your code and, potentially, every single line of code within each method. It can be very slow with a lot of overhead. These types of profilers are also tracking memory allocations and garbage collection to help with memory leaks. They’re very good at finding that hot path, figuring out every single method that’s being called, and what’s using the most CPU. Specific products include: • Visual Studio Profiler • ANTS (RedGate) • dotTrace (JetBrains)
A hybrid allows you to get a deeper level of detail, but runs on your desktop so you can use it every day. These can track every single transaction that happens, including the performance of key methods, dependency calls, errors and logs. As with server-based APM tools, hybrid profilers provide a relatively high level overview with low overhead, but you can run them on your dev box to find and fix issues before you deploy. Specific products include: • Prefix (Stackify) • Glimpse • MiniProfiler
Naturally, I’m partial to Stackify’s Retrace and Prefix tools. They’ve been a labor of love for the past four years.
Read full article at Stackify.com