The Curious Engineer

All blogs / C# / .NET

Performance is a Feature!

mattwarren.org

C# / .NETPerformance / optimizationEngineering blogs

Posts
76 from 5 Jun 2014 to 3 Mar 2020
Posting
quiet since 2020
Kind
personal blog
Feed
https://mattwarren.org/atom.xml

2020 2

  1. Analysing .NET start-up time with Flamegraphs
  2. Under the hood of "Default Interface Methods"

2019 5

  1. Research based on the .NET Runtime
  2. "Stubs" in the .NET Runtime
  3. ASCII Art in .NET Code
  4. Is C# a low-level language?
  5. "Stack Walking" in the .NET Runtime

2018 13

  1. Exploring the .NET Core Runtime (in which I set myself a challenge)
  2. Open Source .NET – 4 years later
  3. A History of .NET Runtimes
  4. Fuzzing the .NET JIT Compiler
  5. Monitoring and Observability in the .NET Runtime
  6. Presentations and Talks covering '.NET Internals'
  7. .NET JIT and CLR - Joined at the Hip
  8. Tools for Exploring .NET Internals
  9. CoreRT - A .NET Runtime for AOT
  10. Taking a look at the ECMA-335 Standard for .NET
  11. Exploring the internals of the .NET Runtime
  12. How generics were added to .NET
  13. Resources for Learning about .NET Internals

2017 20

  1. A look back at 2017
  2. Open Source .NET – 3 years later
  3. A look at the internals of 'Tiered JIT Compilation' in .NET Core
  4. Exploring the BBC micro:bit Software Stack
  5. Microsoft & Open Source a 'Brave New World' - CORESTART 2.0
  6. A DoS Attack against the C# Compiler
  7. DotNetAnywhere: An Alternative .NET Runtime
  8. Analysing C# code on GitHub with BigQuery
  9. A look at the internals of 'boxing' in the CLR
  10. Memory Usage Inside the CLR
  11. How the .NET Runtime loads a Type
  12. Lowering in the C# Compiler (and what happens when you misuse it)
  13. Adding a new Bytecode Instruction to the CLR
  14. Arrays and the CLR - a Very Special Relationship
  15. The CLR Thread Pool 'Thread Injection' Algorithm
  16. The .NET IL Interpreter
  17. A Hitchhikers Guide to the CoreCLR Source Code
  18. The 68 things the CLR does before executing a single line of your code (*)
  19. How do .NET delegates work?
  20. Analysing Pause times in the .NET GC

2016 23

  1. Why Exceptions should be Exceptional
  2. Why is reflection slow?
  3. Research papers in the .NET source
  4. Open Source .NET – 2 years later
  5. How does the 'fixed' keyword work?
  6. Adding a verb to the dotnet CLI tooling
  7. Optimising LINQ
  8. Compact strings in the CLR
  9. Subverting .NET Type Safety with 'System.Runtime.CompilerServices.Unsafe'
  10. Analysing .NET Memory Dumps with CLR MD
  11. Analysing Optimisations in the Wire Serialiser
  12. Preventing .NET Garbage Collections with the TryStartNoGCRegion API
  13. GC Pauses and Safe Points
  14. How the dotnet CLI tooling runs your code
  15. Visualising the .NET Garbage Collector
  16. Strings and the CLR - a Special Relationship
  17. Adventures in Benchmarking - Performance Golf
  18. Coz: Finding Code that Counts with Causal Profiling - An Introduction
  19. Adventures in Benchmarking - Method Inlining
  20. Adventures in Benchmarking - Memory Allocations
  21. Technically Speaking - Anniversary Mentoring
  22. Learning How Garbage Collectors Work - Part 1
  23. Open Source .NET – 1 year later - Now with ASP.NET

2015 3

  1. Open Source .NET – 1 year later
  2. The Stack Overflow Tag Engine – Part 3
  3. The Stack Overflow Tag Engine – Part 2

2014 10

  1. The Stack Overflow Tag Engine – Part 1
  2. The Art of Benchmarking (Updated 2014-09-23)
  3. Stack Overflow - performance lessons (part 2)
  4. Stack Overflow - performance lessons (part 1)
  5. How to mock sealed classes and static methods
  6. Know thy .NET object memory layout (Updated 2014-09-03)
  7. Measuring the impact of the .NET Garbage Collector - An Update
  8. Measuring the impact of the .NET Garbage Collector
  9. Roslyn code base - performance lessons (part 2)
  10. Roslyn code base - performance lessons (part 1)