I can’t believe I waited until now to blog about it, but I have two courses on Pluralsight covering .NET performance optimization. If you’ve been reading this blog for any time now, you know this is one of my favorite topics — and I was absolutely thrilled to join the Pluralsight author team in early 2014.
My first course is titled Making .NET Applications Faster, and it was released in May. It’s a fairly short course, running just under 2 hours, that covers the basics of .NET performance optimization. Some of my favorite topics include implementing value types correctly, using NGen and ILMerge, applying pointer tricks in C#, and parallelizing code with the TPL. No performance optimization course is complete without demos, and I’ve done my best to illustrate the specific optimizations with simple applications that drive the point home. For example, you’ll see me speed up the warm startup time of RavenDB using RyuJIT, or make a collection lookup 10x faster by using a clever custom collection.
My second course, Making .NET Applications Even Faster, was released just a few days ago. It’s longer than the first one — just over 3 hours, and it covers more advanced topics. The first two modules, which describe the .NET garbage collector in depth and explain how to measure and improve GC performance, are some of my favorites. But I also enjoyed describing vectorization: the 4-8x speedup potential is incredible, and there are a few algorithms that you can see me parallelize in real-time. Another set of demos I love is around low-level CPU optimizations that have to do with caches, pipelining, and even store-to-load forwarding stalls. Intel VTune Amplifier helps immensely to detect these issues and produces clear guidelines for improvement.
My next Pluralsight course — it’s not a secret! — is going to cover performance measurement. I intend to cover lots of tools and techniques for accurately measuring and reporting performance, including free tools that you can use in development and production environments. ETW is going to be a key part of this course: it has positioned itself as the most reliable and powerful way to measure performance on Windows.
If you have any questions or feedback on my courses, please feel free to comment here or use the discussions area on the Pluralsight website. Thanks for watching, and I hope you’re having fun!
I am posting short links and updates on Twitter as well as on this blog. You can follow me: @goldshtn