Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
awesome-dot-net-performance
A curated list of awesome .NET Performance books, courses, trainings, conference talks, blogs and most inspiring open source contributors. Inspired by awesome-... stuff.
https://github.com/eric-erki/awesome-dot-net-performance
Last synced: 4 days ago
JSON representation
-
Article series
-
Monitoring
-
Benchmarking
- Micro-Benchmarking Done Wrong, And For The Wrong Reasons
- Benchmarking made easy
- Simple microbenchmarking in C#
- On ‘stackalloc’ Performance and The Large Object Heap
- Micro-Benchmarking Considered Harmful
- On Measuring Performance
- Microbenchmark Design Guidelines
- The Art of Benchmarking
- Stopwatch under the hood
- DateTime under the hood
- Acquiring high-resolution time stamps
- Performance exercise: Minimum
- Measuring Performance Improvements in .NET Core with BenchmarkDotNet (Part 1)
-
Investigations
-
Debugging performances series by Tess Ferrandez
- Reader email: Need help troubleshooting perf/memory issues
- Debugging a classic ReaderWriterLock deadlock with SOSex.dll
- New commands in SOS for .NET 4.0 Part 1
- High CPU in .NET app using a static Generic.Dictionary
- .NET Hang Case study: The danger of locking on strings
- First step in troubleshooting complex issues: Define and scope your issue properly
- Show me the memory: Tool for visualizing virtual memory usage and GC heap usage.
- .NET Memory Leak reader email: Are you really “leaking” .net memory
- .NET Memory Leak: To dispose or not to dispose, that’s the 1 GB question
- All .NET Debugging Demos: Hang, Crash, memory, and CPU
-
JIT Optimizations
- RyuJIT Tutorial
- JIT Optimizations, Inlining, and Interface Method Dispatching (Part 1 of N)
- JIT Optimizations, Inlining, and Interface Method Dispatching (Part 2 of N)
- Aggressive Inlining in the CLR 4.5 JIT
- Some Notes on Using Machine Learning to Develop Inlining Heuristics
- The JIT does dead-code elimination in Debuggable code
- Do PDB Files Affect Performance?
- Hoisting in .NET Explained (part 1)
- Hoisting in .NET Examples (part 2)
-
Refs
-
Threading
-
Memory
- GC Perf Infrastructure – Part 1
- GC Perf Infrastructure – Part 0
- The history of the GC configs
- Finalization implementation details
- A portable way to get GC events in process and no admin privilege with 10 lines of code (and ability to dynamically enable/disable events)
- Making CPU configuration better for GC on machines with > 64 CPUs
- Running with Server GC in a Small Container Scenario Part 0
- You Should Never See This Callstack in Production
- Middle Ground between Server and Workstation GC
- Pooling large arrays with ArrayPool
- Value Types vs Reference Types
- Span
- Running with Server GC in a Small Container Scenario Part 1 – Hard Limit for the GC Heap
-
.NET Core 3.0 Intrinsics
- Hardware Intrinsics in .NET Core
- Exploring .NET Core platform intrinsics: Part 1 - Accelerating SHA-256 on ARMv8
- Exploring .NET Core platform intrinsics: Part 2 - Accelerating AES encryption on ARMv8
- Exploring .NET Core platform intrinsics: Part 3 - Viewing the code generated by the JIT
- Exploring .NET Core platform intrinsics: Part 4 - Alignment and pipelining
- .NET Core 3.0 Intrinsics in Real Life - 1/3
- .NET Core 3.0 Intrinsics in Real Life - 2/3
- .NET Core 3.0 Intrinsics in Real Life - 3/3
-
Performance Improvements in .NET Core
-
-
Books
- Functional Concurrency in .NET
- Pro .NET Performance: Optimize Your C# Applications
- Pro .NET Benchmarking: The Art of Performance Measurement
- CLR via C#
- Pro Asynchronous Programming with .NET
- Writing High-Performance .NET Code
- Advanced .NET Debugging
- Concurrent Programming on Windows
- .NET IL Assembler
- High-Performance Windows Store Apps
- Under the Hood of .NET Memory Management
- Pro .NET Memory Management: For Better Code, Performance, and Scalability
- Customizing the Microsoft® .NET Framework Common Language Runtime
-
Video Courses
- Using Threads Effectively to Build Scalable, Responsive, and Fast .NET Applications and Components
- Making .NET Applications Faster
- Making .NET Applications Even Faster
- Defrag Tools - Perf View
- High Performance Coding with .NET Core and C#
- part 1 - Tools/Defrag-Tools-34-CLR-GC-Part-2) [part 3](https://channel9.msdn.com/Shows/Defrag-Tools/Defrag-Tools-35-CLR-GC-Part-3) and [part 4](https://channel9.msdn.com/Shows/Defrag-Tools/Defrag-Tools-36-CLR-GC-Part-4) with Maoni Stephens
- Measuring .NET Performance
- Measuring .NET Performance
-
On-Site Trainings
-
Conference talks
- What the game industry taught me about performance
- Compiling and Running a PHP on .NET Core
- Ethereum performance in .NET Core
- To ORM or not to ORM
- Writing Allocation Free Code in C#
- Cliff diving into async in .NET Core and C# 8
- Performance Testing
- How Entity Framework translates LINQ all the way to SQL
- .NET Intrinsics in CoreCLR 3.0
- The .NET Garbage Collector
- .NET Performance Investigation
- Performance in the .NET Runtime
- Spanification
- JIT and AOT in the CLR - Chin Tsai (30.07.2019, JVM Language Summit)
- Powerful benchmarking in .NET
- Ref struct, ref readonly struct, ref returning, ref everything!
- Building responsive and scalable applications
- Extend the new WinDbg to build your own dream debugging tool
- Tuning a Runtime for Both Productivity and Performance - Chin Tsai (26.02.2019, QCon)
- Efficient Buffer Manipulation using C# 7.2's Span
- Building your own debugging toolbox with ClrMD
- Scratched metal
- PerfView: The Ultimate .NET Performance Tool
- Advanced .NET debugging techniques from a real world investigation
- Patterns for high-performance C#
- What's new for performance in .NET Core 2.0
- State of the .NET Performance
- Look Mommy, No GC!
- Squeezing the Hardware to Make Performance Juice
- Performance tuning Stack Overflow tags
- Multithreading Deep Dive
- Exceptional Exceptions in .NET
- PerfView: Measure and Improve Your App's Performance For Free
- The C++ and CLR Memory Models
- ASP.NET Core Kestrel: Adventures in building a fast web server
- Performance Optimizations in the Wild
- The Vector in Your CPU: Exploiting SIMD for Superscalar Performance
- Making .NET applications faster
- Exceptional Exceptions in .NET
- What’s new for performance in .NET Core and ASP.NET Core 3.0
- Stack Overflow — It's all about performance!
- ETW — Monitor Anything, Anytime, Anywhere
- Make your custom .NET GC — "whys" and "hows"
-
Blogs
-
Inspiring Open Source Contributors
-
Performance tools
-
Profiling
- MiniProfiler - Free profiling tool for .NET applications with Entity Framework and ASP.Net integration (Core supported for both versions)
- dotTrace - Paid profiler for .NET applications from the JetBrains team, included in the Resharper Ultimate package
- Unchase.FluentPerformanceMeter - Free open-source and cross-platform .Net Standard 2.0 library that is designed for the method’s performance measurement
-
Benchmarking
- NBench - Cross-platform performance benchmarking and testing framework for .NET applications.
- BenchmarkDotNet - Powerful .NET library for benchmarking.
-
-
High Performance Libraries
-
Application Insights
- NativeInterop - Generic pointers and native 64-bit arrays for .NET.
- Spreads - "Series and Panels for Real-time and Exploratory Analysis of Data Streams", a library for fast time series incremental calculations + SIMD-optimized byte-shuffling/LZ4/Zstd compression using [Blosc](https://github.com/Blosc/c-blosc/) library.
- SIMD Array - SIMD and other Performance enhanced Array operations for F#.
- Nessos Streams - A lightweight F#/C# library for efficient functional-style pipelines on streams of data.
- Wire - A high performance polymorphic serializer for the .NET framework.
- Disruptor-Net - .NET port of LMAX Disruptor, a faster alternative to BlockingCollection.
- MPMCQueue.NET - Bounded multiple producers multiple consumers queue for .NET.
- ImTools - Immutable persistent collections and helpers designed for [performance](https://gist.github.com/mrange/d6e7415113ebfa52ccb660f4ce534dd4) and simplicity of use.
- FastExpressionCompiler - Fast [Expression Trees](https://msdn.microsoft.com/en-us/library/mt654263.aspx) compiler to delegate to compensate for slow `Expression.Compile()`.
- DryIoc - For the past years a [fastest](http://www.palmmedia.de/blog/2011/8/30/ioc-container-benchmark-performance-comparison) Dependency Injection library without sacrificing on [functionality](http://featuretests.apphb.com/DependencyInjection.html).
- SimpleInjector - Fast Dependency Injection library that promotes best practice to steer developers towards the pit of success.
-
Categories
Sub Categories
Keywords
performance
5
benchmark
3
lock-free
2
dryioc
2
dependency-injection
2
csharp
2
dotnet
2
hashtable
1
hashmap
1
functional-programming
1
effects
1
dictionary
1
data-structures
1
compare-and-swap
1
avl-tree
1
2-3-tree
1
queue
1
multiple-consumers
1
mpmc-queues
1
high-performance
1
time-series
1
garbage-collection
1
series-manipulation
1
real-time
1
nbench
1
data-stream
1
cep
1
dot-net
1
performance-test
1
simpleinjector
1
ioc-container
1
di-container
1
c-sharp
1
xamarin
1
simplicity
1
prism
1
netstandard
1
netcore
1
inversion-of-control
1
di-ioc-container
1
il-optimizations
1
expression-tree
1
delegates
1
delegate
1
compiler
1
code-generation
1
closure
1
value-semantics
1
sum-types
1
robinhood-hashmap
1