On March 10 Alik Levin and I presented at the Microsoft Performance Open House in Raanana. Alik’s presentation focused on PDLC (Performance Development Life Cycle) and addressed various tools and techniques for performance measurement and analysis; my session featured an in-depth overview of some performance-killers across the .NET framework (“not being friends with the GC” among other issues) as well as a detailed demo of exposing Windows performance counters from .NET, using the CLR Profiler to analyze memory allocations and using the Visual Studio 2008 Profiler for analyzing CPU consumption and comparing profiler reports.
Here’s the list of topics you’ll see in the presentation slides and the attached demos:
- Exposing performance counters from .NET and logging them using Performance Monitor;
- Analyzing an application’s memory allocations and garbage collection patterns using CLR Profiler;
- Analyzing an algorithm’s CPU-wise performance using Visual Studio 2008 Profiler, improving the code and comparing profiler runs;
- How value types should be implemented correctly and what are the costs of not doing so;
- How the garbage collector can be your best friend or worst enemy and what kind of things you would be looking for;
- Why CPU cache matters even in the abstract .NET world.
The presentation slides and the demo projects I’ve shown during the session can be downloaded from my SkyDrive. Additionally, here’s a non-exhaustive set of resources I’ve mentioned in my presentation:
- My DevAcademy2 session recording titled “Psychic Performance and Debugging 101”, demonstrating the power of WinDbg for performance analysis and debugging;
- Microsoft bloggers covering the world of performance and debugging: Tess, Rico Mariani, ASP.NET Debugging, Carlo, Maoni and many others;
- My blog post on various debugging and investigation techniques;
- CLR Profiler download;
- Visual Studio 2008 Team Edition 90-day trial download;
- Debugging Tools for Windows (WinDbg included) download;
Thanks to everyone who attended this event, and see you around at TechEd Eilat! DEV444 – Next Generation Production Debugging (webcast promo link), on Monday 7/4 at 17:30-18:45 (Hilton hotel).