Performance is a Feature!
- 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
2019 5
2018 13
- Exploring the .NET Core Runtime (in which I set myself a challenge)
- Open Source .NET – 4 years later
- A History of .NET Runtimes
- Fuzzing the .NET JIT Compiler
- Monitoring and Observability in the .NET Runtime
- Presentations and Talks covering '.NET Internals'
- .NET JIT and CLR - Joined at the Hip
- Tools for Exploring .NET Internals
- CoreRT - A .NET Runtime for AOT
- Taking a look at the ECMA-335 Standard for .NET
- Exploring the internals of the .NET Runtime
- How generics were added to .NET
- Resources for Learning about .NET Internals
2017 20
- A look back at 2017
- Open Source .NET – 3 years later
- A look at the internals of 'Tiered JIT Compilation' in .NET Core
- Exploring the BBC micro:bit Software Stack
- Microsoft & Open Source a 'Brave New World' - CORESTART 2.0
- A DoS Attack against the C# Compiler
- DotNetAnywhere: An Alternative .NET Runtime
- Analysing C# code on GitHub with BigQuery
- A look at the internals of 'boxing' in the CLR
- Memory Usage Inside the CLR
- How the .NET Runtime loads a Type
- Lowering in the C# Compiler (and what happens when you misuse it)
- Adding a new Bytecode Instruction to the CLR
- Arrays and the CLR - a Very Special Relationship
- The CLR Thread Pool 'Thread Injection' Algorithm
- The .NET IL Interpreter
- A Hitchhikers Guide to the CoreCLR Source Code
- The 68 things the CLR does before executing a single line of your code (*)
- How do .NET delegates work?
- Analysing Pause times in the .NET GC
2016 23
- Why Exceptions should be Exceptional
- Why is reflection slow?
- Research papers in the .NET source
- Open Source .NET – 2 years later
- How does the 'fixed' keyword work?
- Adding a verb to the dotnet CLI tooling
- Optimising LINQ
- Compact strings in the CLR
- Subverting .NET Type Safety with 'System.Runtime.CompilerServices.Unsafe'
- Analysing .NET Memory Dumps with CLR MD
- Analysing Optimisations in the Wire Serialiser
- Preventing .NET Garbage Collections with the TryStartNoGCRegion API
- GC Pauses and Safe Points
- How the dotnet CLI tooling runs your code
- Visualising the .NET Garbage Collector
- Strings and the CLR - a Special Relationship
- Adventures in Benchmarking - Performance Golf
- Coz: Finding Code that Counts with Causal Profiling - An Introduction
- Adventures in Benchmarking - Method Inlining
- Adventures in Benchmarking - Memory Allocations
- Technically Speaking - Anniversary Mentoring
- Learning How Garbage Collectors Work - Part 1
- Open Source .NET – 1 year later - Now with ASP.NET
2015 3
2014 10
- The Stack Overflow Tag Engine – Part 1
- The Art of Benchmarking (Updated 2014-09-23)
- Stack Overflow - performance lessons (part 2)
- Stack Overflow - performance lessons (part 1)
- How to mock sealed classes and static methods
- Know thy .NET object memory layout (Updated 2014-09-03)
- Measuring the impact of the .NET Garbage Collector - An Update
- Measuring the impact of the .NET Garbage Collector
- Roslyn code base - performance lessons (part 2)
- Roslyn code base - performance lessons (part 1)