<?xml version="1.0" encoding="UTF-8"?>
<urlset xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://www.sitemaps.org/schemas/sitemap/0.9 http://www.sitemaps.org/schemas/sitemap/0.9/sitemap.xsd" xmlns="http://www.sitemaps.org/schemas/sitemap/0.9">
<url>
<loc>http://www.mattwarren.org/2014/06/05/roslyn-code-base-performance-lessons-part-1/</loc>
<lastmod>2014-06-05T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://www.mattwarren.org/2014/06/10/roslyn-code-base-performance-lessons-part-2/</loc>
<lastmod>2014-06-10T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://www.mattwarren.org/2014/06/18/measuring-the-impact-of-the-net-garbage-collector/</loc>
<lastmod>2014-06-18T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://www.mattwarren.org/2014/06/23/measuring-the-impact-of-the-net-garbage-collector-an-update/</loc>
<lastmod>2014-06-23T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://www.mattwarren.org/2014/07/04/know-thy-net-object-memory-layout/</loc>
<lastmod>2014-07-04T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://www.mattwarren.org/2014/08/14/how-to-mock-sealed-classes-and-static-methods/</loc>
<lastmod>2014-08-14T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://www.mattwarren.org/2014/09/01/stackoverflow-performance-lessons-part-1/</loc>
<lastmod>2014-09-01T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://www.mattwarren.org/2014/09/05/stack-overflow-performance-lessons-part-2/</loc>
<lastmod>2014-09-05T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://www.mattwarren.org/2014/09/19/the-art-of-benchmarking/</loc>
<lastmod>2014-09-19T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://www.mattwarren.org/2014/11/01/the-stack-overflow-tag-engine-part-1/</loc>
<lastmod>2014-11-01T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://www.mattwarren.org/2015/08/19/the-stack-overflow-tag-engine-part-2/</loc>
<lastmod>2015-08-19T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://www.mattwarren.org/2015/10/29/the-stack-overflow-tag-engine-part-3/</loc>
<lastmod>2015-10-29T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://www.mattwarren.org/2015/12/08/open-source-net-1-year-later/</loc>
<lastmod>2015-12-08T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://www.mattwarren.org/2016/01/15/open-source-net-1-year-later-now-with-aspnet/</loc>
<lastmod>2016-01-15T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://www.mattwarren.org/2016/02/04/learning-how-garbage-collectors-work-part-1/</loc>
<lastmod>2016-02-04T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://www.mattwarren.org/2016/02/16/technically-speaking-anniversary-mentoring/</loc>
<lastmod>2016-02-16T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://www.mattwarren.org/2016/02/17/adventures-in-benchmarking-memory-allocations/</loc>
<lastmod>2016-02-17T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://www.mattwarren.org/2016/03/09/adventures-in-benchmarking-method-inlining/</loc>
<lastmod>2016-03-09T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://www.mattwarren.org/2016/03/30/Coz-Finding-Code-that-Counts-with-Causal-Profiling/</loc>
<lastmod>2016-03-30T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://www.mattwarren.org/2016/05/16/adventures-in-benchmarking-performance-golf/</loc>
<lastmod>2016-05-16T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://www.mattwarren.org/2016/05/31/Strings-and-the-CLR-a-Special-Relationship/</loc>
<lastmod>2016-05-31T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://www.mattwarren.org/2016/06/20/Visualising-the-dotNET-Garbage-Collector/</loc>
<lastmod>2016-06-20T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://www.mattwarren.org/2016/07/04/How-the-dotnet-CLI-tooling-runs-your-code/</loc>
<lastmod>2016-07-04T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://www.mattwarren.org/2016/08/08/GC-Pauses-and-Safe-Points/</loc>
<lastmod>2016-08-08T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://www.mattwarren.org/2016/08/16/Preventing-dotNET-Garbage-Collections-with-the-TryStartNoGCRegion-API/</loc>
<lastmod>2016-08-16T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://www.mattwarren.org/2016/08/23/Analysing-Optimisations-in-the-Wire-Serialiser/</loc>
<lastmod>2016-08-23T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://www.mattwarren.org/2016/09/06/Analysing-.NET-Memory-Dumps-with-CLR-MD/</loc>
<lastmod>2016-09-06T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://www.mattwarren.org/2016/09/14/Subverting-.NET-Type-Safety-with-System.Runtime.CompilerServices.Unsafe/</loc>
<lastmod>2016-09-14T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://www.mattwarren.org/2016/09/19/Compact-strings-in-the-CLR/</loc>
<lastmod>2016-09-19T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://www.mattwarren.org/2016/09/29/Optimising-LINQ/</loc>
<lastmod>2016-09-29T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://www.mattwarren.org/2016/10/03/Adding-a-verb-to-the-dotnet-CLI-tooling/</loc>
<lastmod>2016-10-03T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://www.mattwarren.org/2016/10/26/How-does-the-fixed-keyword-work/</loc>
<lastmod>2016-10-26T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://www.mattwarren.org/2016/11/23/open-source-net-2-years-later/</loc>
<lastmod>2016-11-23T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://www.mattwarren.org/2016/12/12/Research-papers-in-the-.NET-source/</loc>
<lastmod>2016-12-12T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://www.mattwarren.org/2016/12/14/Why-is-Reflection-slow/</loc>
<lastmod>2016-12-14T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://www.mattwarren.org/2016/12/20/Why-Exceptions-should-be-Exceptional/</loc>
<lastmod>2016-12-20T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://www.mattwarren.org/2017/01/13/Analysing-Pause-times-in-the-.NET-GC/</loc>
<lastmod>2017-01-13T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://www.mattwarren.org/2017/01/25/How-do-.NET-delegates-work/</loc>
<lastmod>2017-01-25T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://www.mattwarren.org/2017/02/07/The-68-things-the-CLR-does-before-executing-a-single-line-of-your-code/</loc>
<lastmod>2017-02-07T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://www.mattwarren.org/2017/03/23/Hitchhikers-Guide-to-the-CoreCLR-Source-Code/</loc>
<lastmod>2017-03-23T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://www.mattwarren.org/2017/03/30/The-.NET-IL-Interpreter/</loc>
<lastmod>2017-03-30T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://www.mattwarren.org/2017/04/13/The-CLR-Thread-Pool-Thread-Injection-Algorithm/</loc>
<lastmod>2017-04-13T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://www.mattwarren.org/2017/05/08/Arrays-and-the-CLR-a-Very-Special-Relationship/</loc>
<lastmod>2017-05-08T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://www.mattwarren.org/2017/05/19/Adding-a-new-Bytecode-Instruction-to-the-CLR/</loc>
<lastmod>2017-05-19T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://www.mattwarren.org/2017/05/25/Lowering-in-the-C-Compiler/</loc>
<lastmod>2017-05-25T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://www.mattwarren.org/2017/06/15/How-the-.NET-Rutime-loads-a-Type/</loc>
<lastmod>2017-06-15T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://www.mattwarren.org/2017/07/10/Memory-Usage-Inside-the-CLR/</loc>
<lastmod>2017-07-10T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://www.mattwarren.org/2017/08/02/A-look-at-the-internals-of-boxing-in-the-CLR/</loc>
<lastmod>2017-08-02T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://www.mattwarren.org/2017/10/12/Analysing-C-code-on-GitHub-with-BigQuery/</loc>
<lastmod>2017-10-12T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://www.mattwarren.org/2017/10/19/DotNetAnywhere-an-Alternative-.NET-Runtime/</loc>
<lastmod>2017-10-19T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://www.mattwarren.org/2017/11/08/A-DoS-Attack-against-the-C-Compiler/</loc>
<lastmod>2017-11-08T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://www.mattwarren.org/2017/11/14/Microsoft-and-Open-Source-a-Brave-New-World-CORESTART/</loc>
<lastmod>2017-11-14T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://www.mattwarren.org/2017/11/28/Exploring-the-BBC-microbit-Software-Stack/</loc>
<lastmod>2017-11-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://www.mattwarren.org/2017/12/15/How-does-.NET-JIT-a-method-and-Tiered-Compilation/</loc>
<lastmod>2017-12-15T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://www.mattwarren.org/2017/12/19/Open-Source-.Net-3-years-later</loc>
<lastmod>2017-12-19T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://www.mattwarren.org/2017/12/31/A-look-back-at-2017/</loc>
<lastmod>2017-12-31T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://www.mattwarren.org/2018/01/22/Resources-for-Learning-about-.NET-Internals/</loc>
<lastmod>2018-01-22T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://www.mattwarren.org/2018/03/02/How-generics-were-added-to-.NET/</loc>
<lastmod>2018-03-02T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://www.mattwarren.org/2018/03/23/Exploring-the-internals-of-the-.NET-Runtime/</loc>
<lastmod>2018-03-23T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://www.mattwarren.org/2018/04/06/Taking-a-look-at-the-ECMA-335-Standard-for-.NET/</loc>
<lastmod>2018-04-06T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://www.mattwarren.org/2018/06/07/CoreRT-.NET-Runtime-for-AOT/</loc>
<lastmod>2018-06-07T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://www.mattwarren.org/2018/06/15/Tools-for-Exploring-.NET-Internals/</loc>
<lastmod>2018-06-15T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://www.mattwarren.org/2018/07/05/.NET-JIT-and-CLR-Joined-at-the-Hip/</loc>
<lastmod>2018-07-05T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://www.mattwarren.org/2018/07/12/Presentations-and-Talks-covering-.NET-Internals/</loc>
<lastmod>2018-07-12T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://www.mattwarren.org/2018/08/21/Monitoring-and-Observability-in-the-.NET-Runtime/</loc>
<lastmod>2018-08-21T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://www.mattwarren.org/2018/08/28/Fuzzing-the-.NET-JIT-Compiler/</loc>
<lastmod>2018-08-28T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://www.mattwarren.org/2018/10/02/A-History-of-.NET-Runtimes/</loc>
<lastmod>2018-10-02T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://www.mattwarren.org/2018/12/04/Open-Source-.Net-4-years-later</loc>
<lastmod>2018-12-04T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://www.mattwarren.org/2018/12/13/Exploring-the-.NET-Core-Runtime/</loc>
<lastmod>2018-12-13T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://www.mattwarren.org/2019/01/21/Stackwalking-in-the-.NET-Runtime/</loc>
<lastmod>2019-01-21T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://www.mattwarren.org/2019/03/01/Is-CSharp-a-low-level-language/</loc>
<lastmod>2019-03-01T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://www.mattwarren.org/2019/04/25/ASCII-Art-in-.NET-Code/</loc>
<lastmod>2019-04-25T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://www.mattwarren.org/2019/09/26/Stubs-in-the-.NET-Runtime/</loc>
<lastmod>2019-09-26T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://www.mattwarren.org/2019/10/25/Research-based-on-the-.NET-Runtime/</loc>
<lastmod>2019-10-25T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://www.mattwarren.org/2020/02/19/Under-the-hood-of-Default-Interface-Methods/</loc>
<lastmod>2020-02-19T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://www.mattwarren.org/2020/03/03/Analysing-.NET-Runtime-Startup-with-Flamegraphs/</loc>
<lastmod>2020-03-03T00:00:00+00:00</lastmod>
</url>
<url>
<loc>http://www.mattwarren.org/about/</loc>
</url>
<url>
<loc>http://www.mattwarren.org/</loc>
</url>
<url>
<loc>http://www.mattwarren.org/postsByMonth/</loc>
</url>
<url>
<loc>http://www.mattwarren.org/postsByYear/</loc>
</url>
<url>
<loc>http://www.mattwarren.org/resources/</loc>
</url>
<url>
<loc>http://www.mattwarren.org/speaking/</loc>
</url>
<url>
<loc>http://www.mattwarren.org/tags/</loc>
</url>
<url>
<loc>http://www.mattwarren.org/page2/</loc>
</url>
<url>
<loc>http://www.mattwarren.org/page3/</loc>
</url>
<url>
<loc>http://www.mattwarren.org/page4/</loc>
</url>
<url>
<loc>http://www.mattwarren.org/page5/</loc>
</url>
<url>
<loc>http://www.mattwarren.org/page6/</loc>
</url>
<url>
<loc>http://www.mattwarren.org/page7/</loc>
</url>
<url>
<loc>http://www.mattwarren.org/page8/</loc>
</url>
<url>
<loc>http://www.mattwarren.org/data/2018/03/clrgen-il.html</loc>
<lastmod>2020-03-04T09:03:41+00:00</lastmod>
</url>
<url>
<loc>http://www.mattwarren.org/data/2018/03/clrgen-types.html</loc>
<lastmod>2020-03-04T09:03:41+00:00</lastmod>
</url>
<url>
<loc>http://www.mattwarren.org/data/2018/03/csharp.html</loc>
<lastmod>2020-03-04T09:03:41+00:00</lastmod>
</url>
<url>
<loc>http://www.mattwarren.org/data/2018/04/ECMA-335%20-%203rd%20edition%20-%20Changes.pdf</loc>
<lastmod>2020-03-04T09:03:41+00:00</lastmod>
</url>
<url>
<loc>http://www.mattwarren.org/data/2018/04/ECMA-335%20-%204th%20edition%20-%20Changes.pdf</loc>
<lastmod>2020-03-04T09:03:41+00:00</lastmod>
</url>
<url>
<loc>http://www.mattwarren.org/data/2018/04/ECMA-335%20-%205th%20edition%20-%20Changes.pdf</loc>
<lastmod>2020-03-04T09:03:41+00:00</lastmod>
</url>
<url>
<loc>http://www.mattwarren.org/data/2018/04/ECMA-335%20-%206th%20edition%20-%20Changes.pdf</loc>
<lastmod>2020-03-04T09:03:41+00:00</lastmod>
</url>
<url>
<loc>http://www.mattwarren.org/google040cc0982a194c5a.html</loc>
<lastmod>2020-03-04T09:03:41+00:00</lastmod>
</url>
</urlset>
