Slides for Patterns & Practices Talk: Desiging for Performance

Tomorrow (10/14/2009) I am giving a talk on performance at Microsoft-Campus Paterns and Practices Summit.  Below is the abstact for my talk

To many developers, high performance development is ‘magic’.   It involves multiple metrics (time, memory allocations, footprint, startup) many special tools (profilers, performance counters, ETW, NGEN), special knowledge (cache lines, page faults, seek times), conflicting advice (are generics good or bad for performance?), lots of confusing numbers, and a bunch of extra work.    While it is true that performance is a broad topic with lots of details, it is also true that it is relatively easy to sort all of this detail into categories that make the topic of performance much more approachable.    This talk simplifies and prioritizes what you need to know in order build high performance applications on .NET.    

I have posted the slides here for reference.   For those of you who may not have power-point, I have also cut and pasted the bibliography of web links, which are generally useful for those who care about performance. For those of you with power-point, simply click on the hyper link here or at the end of the article.

•Articles

CLR Inside Out: Measure Early and Often for Performance, Part 1

CLR Inside Out: Measure Early and Often for Performance, Part 2

Memory Usage Auditing for .NET Applications

•Blogs

Vance Morrison's Weblog

Windows Performance Analysis Developer Center (not really a blog, but has FAQ and links to other blogs …)

CLR and Framework Perf Blog (.NET Runtime’s Performance Team notes on Performance)

Rico Mariani's Performance Tidbits

Visual Studio Profiler Team Blog

Hazim Shafi's Blog (details on VS 2010 new Performance tools)

Pigs Can Fly : Xperf, a new tool in the Windows SDK

•Tools

MeasureIt (Benchmarking tool for design time)

Visual Studio 2008 Profiler (Part of Visual Studio Team System) General CPU profiling

Visual Studio 2010 Parallel Performance Analyzer (Part of Visual Studio Team System) Good all-round profiling (CPU, Disk, Blocked)

Windows Performance Analyzer (WPA) (XPERF), General Sub-process performance analysis.

VMMap (Measuring the coarse memory usage within a process)

CLR Profiler for the .NET Framework 2.0 (Measuring detailed memory usage within the GC heap)

Process Explorer (A more feature-rich Task Manager)

Process Monitor (A tool for monitoring

•Event Tracing Windows (ETW) Articles

Event Tracing: Improve Debugging And Performance Tuning With ETW

Core OS Events in Windows 7, Part 1

Core Instrumentation Events in Windows 7, Part 2

PatternsAndPracticesTalk.pptx