.NET performance issues? Tess Fernandez is your girl!
May 23rd 2007I'm currently in Stockholm attending Developer Summit 2007. The first day of the event have been great. Developer Summit is hosted by Cornerstone and isn't your typical Microsoft show. The conference have four parallel tracks; Architecture, .NET, Java and ReMix (the most important topics from MIX07).
The presentation I found most interesting today was Tess Fernandez talk on "Common problems in ASP.NET production environment". The title might not sound too exiting (compared to stuff like "Designing stunning sites with Silverlight"), so this is typically a session I would missed out on a larger conference like TechEd. Debugging isn't my favorite field, but since I lack quote a lot of knowledge and experience in this field I decided to give it a go. And boy am I glad I did! The presentation was amazing. Tess was just hammering through common performance problems and doing some deep dives into the inner working of the CLR and the garbage collector. Really geeky stuff!
Tess didn't use any slides for her presentation, but instead walked us through an ASP.NET app containing some not so obvious (but still quite common) performance pitfalls. Some of the things she covered was managed memory leaks, why you really should use the string builder, why dynamic assemblies can be a problem, how to list all .NET objects in a process and how to find largest one and many other cool tricks. I'm not going to re-iterate her presentation, instead you should check out her excellent blog.
During her presentation Tess did some post-mortem debug analysis using WinDBG (Debugging Tools for Windows), a tool I've never heard of nor used before. But, one thing's for sure, it goes straight into my utility belt! One of the cool things about the tool is that you can xcopy it onto a production environment and debug live ASP.NET applications. You can peek into the process and list stuff like all .NET objects, all .NET objects waiting to be garbage collected, search for large, uncollected objects and so fourth. When you find an object of interest, you can then view it's "raw" content, and find valuable information. You can also store debug information off to a data file for offline post mortem analysis.
Tess should really do a DnrTV episode covering the same things she did in her presentation so that more people could benefit from her debugging kung-fu.
So far the Developer Summit 2007 have been a great event. The atmosphere is relaxed, and people from different camps (Java/.NET) are chatting and sharing experience. It's really fun to attend a conference and talk to other developers about what the technology they're using and the solutions they're building.
Do two plumbers, carpenters, or some other craftsman, speak about the latest tools and technologies relevant to their field with the same passion as two developers meeting at a conference?
The shared passion for software and software development found at places like this are truly inspiring...