A curated list of awesome .NET Performance books, courses, trainings, conference talks, blogs and most inspiring open source contributors. Inspired by awesome-... stuff.
- Pro .NET Performance by Sasha Goldshtein, Dima Zurbalev, Ido Flatow
- CLR via C# by Jeffrey Richter
- Pro Asynchronous Programming with .NET by Richard Blewett, Andrew Clymer
- Writing High-Performance .NET Code by Ben Watson
- Advanced .NET Debugging by Mario Hewardt
- Concurrent Programming on Windows by Joe Duffy
- .NET IL Assembler by Serge Lidin
- High-Performance Windows Store Apps by Brian Rasmussen
- Customizing the Microsoft® .NET Framework Common Language Runtime by Steven Pratschner
- Under the Hood of .NET Memory Management by Chris Farrell and Nick Harrison
- Mastering .NET Performance Tuning by John Robbins
- Using Threads Effectively to Build Scalable, Responsive, and Fast .NET Applications and Components by Jeffrey Richter
- Making .NET Applications Faster by Sasha Goldshtein
- Making .NET Applications Even Faster by Sasha Goldshtein
- Measuring .NET Performance by Sasha Goldshtein
- PerfView Tutorial by Vance Morrison
- Defrag Tools - Perf View by Vance Morrison
- .NET Performance and Debugging Workshop by SELA (Israel)
- .NET Performance by SELA (Israel)
- Asynchronous Computing and Composing Asynchronous and Event-Based by SELA (Israel)
- Parallel Programming with the TPL by SELA (Israel)
- Solid Async in .NET by Rock Solid Knowledge (UK)
- Mastering .NET Performance Tuning by Wintellect (USA)
- Mastering .NET Threading by Wintellect (USA)
- Safe Systems Programming in C# and .NET by Joe Duffy
- Performance Optimizations in the Wild by Oren Eini (Ayende)
- Lessons in Extreme .NET Performance by Ben Watson
- Performance and How to Measure It by Matt Warren
- Making .NET applications faster by Sasha Goldshtein
- The Vector in Your CPU: Exploiting SIMD for Superscalar Performance by Sasha Goldshtein
- Matt Warren
- Andrey Akinshin
- Oren Eini aka Ayende
- Sasha Goldshtein
- Alexandre Mutel aka xoofx
- Jack Mott aka PerlinMandleBro
- Vladimir Sadov
- Ben Adams
- Jan Kotas
- Stephen Toub
- omariom
- James Ko
- mikedn
- Justin Van Patten
- nietras
- Vladimir Sadov
- Federico Andres Lois
- BenchmarkDotNet - Powerful .NET library for benchmarking.
- NBench - Cross-platform performance benchmarking and testing framework for .NET applications.
- xunit.performance - Provides extensions over xUnit to author performance tests.
- Prefix - Free lightweight profiler for ASP.NET apps shows everything your code is doing across 30+ common libraries
- MathNet - Math.NET is an opensource initiative to build and maintain toolkits covering fundamental mathematics, targetting advanced but also every day needs of .Net developers.
- Nessos Streams - A lightweight F#/C# library for efficient functional-style pipelines on streams of data.
- SIMD Array - SIMD and other Performance enhanced Array operations for F#.
- markdig - Markdig is a fast, powerful, CommonMark compliant, extensible Markdown processor for .NET.
- Wire - A high performance polymorphic serializer for the .NET framework.
- Disruptor-Net - .NET port of LMAX Disruptor, a faster alternative to BlockingCollection.
- SimpleInjector - Fast Dependency Injection library that promotes best practice to steer developers towards the pit of success.
- The Art of Benchmarking by Matt Warren
- Adventures in Benchmarking - Memory Allocations by Matt Warren
- Micro-Benchmarking Done Wrong, And For The Wrong Reasons by Sasha Goldshtein
- Stopwatch under the hood by Andrey Akinshin
- DateTime under the hood by Andrey Akinshin
- Benchmarking made easy by Jon Skeet
- Simple microbenchmarking in C# by Jon Skeet
- Acquiring high-resolution time stamps
- On ‘stackalloc’ Performance and The Large Object Heap by Sasha Goldshtein
- Micro-Benchmarking Considered Harmful by Sasha Goldshtein
- On Measuring Performance by Sasha Goldshtein
- JIT Optimizations by Sasha Goldshtein
- JIT Optimizations, Inlining, and Interface Method Dispatching (Part 1 of N) by Sasha Goldshtein
- JIT Optimizations, Inlining, and Interface Method Dispatching (Part 2 of N) by Sasha Goldshtein
- Performance differences between debug and release builds by Hans Passant
- Aggressive Inlining in the CLR 4.5 JIT by Sasha Goldshtein
- Jit Optimizations: Inlining (I) by David Notario
- Jit Optimizations: Inlining (II) by David Notario
- More on inlining… by Eric Gunnerson
- To Inline or not to Inline: That is the question by Vance Morrison
- Some Notes on Using Machine Learning to Develop Inlining Heuristics by Andy Ayers
- The JIT does dead-code elimination in Debuggable code by Mkie Stall
- Does the JIT take advantage of my CPU? by David Notario
- Unrolling of small loops in different JIT versions by Andrey Akinshin
- RyuJIT CTP5 and loop unrolling by Andrey Akinshin
- RyuJIT RC and constant folding by Andrey Akinshin
- A story about JIT-x86 inlining and starg by Andrey Akinshin
- LegacyJIT-x86 and first method call by Andrey Akinshin
- ref returns are not pointers by Vladimir Sadov
- managed pointers by Vladimir Sadov
- Local variables cannot be returned by reference by Vladimir Sadov
- Safe to return rules for ref returns by Vladimir Sadov
- Why ref locals allow only a single binding? by Vladimir Sadov