Click here to Skip to main content
14,737,155 members

Articles by matt warren (Articles: 7, Technical Blogs: 37)

Articles: 7, Technical Blogs: 37

RSS Feed

Average article rating: 4.47

ASP.NET
General
Posted: 11 Sep 2016   Updated: 13 Sep 2016   Views: 13,873   Rating: 4.83/5    Votes: 3   Popularity: 2.31
Licence: The Code Project Open License (CPOL)      Bookmarked: 2   Downloaded: 0
Please Sign up or sign in to vote.
Open source .NET - 1 year later - now with ASP.NET
.NET Framework
General
Posted: 12 Sep 2016   Updated: 13 Sep 2016   Views: 9,541   Rating: 4.95/5    Votes: 7   Popularity: 4.19
Licence: The Code Project Open License (CPOL)      Bookmarked: 2   Downloaded: 0
Please Sign up or sign in to vote.
Open source .NET - 1 year later
Posted: 7 Feb 2017   Updated: 6 Apr 2017   Views: 13,171   Rating: 4.98/5    Votes: 19   Popularity: 6.25
Licence: The Code Project Open License (CPOL)      Bookmarked: 24   Downloaded: 0
Please Sign up or sign in to vote.
Here is a list of 68 things that the CLR does before executing a single line of your code
How To
Posted: 13 Sep 2016   Updated: 14 Sep 2016   Views: 7,790   Rating: 4.60/5    Votes: 5   Popularity: 3.22
Licence: The Code Project Open License (CPOL)      Bookmarked: 6   Downloaded: 0
Please Sign up or sign in to vote.
Stack Overflow - Performance lessions (Part 2)
Posted: 14 Sep 2016   Updated: 14 Sep 2016   Views: 9,990   Rating: 2.00/5    Votes: 3   Popularity: 0.95
Licence: The Code Project Open License (CPOL)      Bookmarked: 5   Downloaded: 0
Please Sign up or sign in to vote.
How to subvert .NET Type safety with 'System.Runtime.CompilerServices.Unsafe'
Algorithms & Recipes
Algorithms
Posted: 11 Sep 2016   Updated: 15 Sep 2016   Views: 7,992   Rating: 5.00/5    Votes: 2   Popularity: 1.51
Licence: The Code Project Open License (CPOL)      Bookmarked: 1   Downloaded: 0
Please Sign up or sign in to vote.
Coz: Finding Code that Counts with Causal Profiling - An Introduction
String handling
General
Posted: 11 Sep 2016   Updated: 13 Sep 2016   Views: 10,512   Rating: 4.92/5    Votes: 8   Popularity: 4.44
Licence: The Code Project Open License (CPOL)      Bookmarked: 4   Downloaded: 0
Please Sign up or sign in to vote.
Strings and the CLR - a special relationship

Average blogs rating: 4.95

C#
Delegates and Events
Posted: 25 Jan 2017   Updated: 25 Jan 2017   Views: 8,250   Rating: 5.00/5    Votes: 4   Popularity: 3.01
Licence: The Code Project Open License (CPOL)      Bookmarked: 15   Downloaded: 0
Please Sign up or sign in to vote.
Delegates are a fundamental part of the .NET runtime but how do they actually work and what’s going in the CLR when you use them?
General
Posted: 9 Sep 2016   Updated: 15 Sep 2016   Views: 10,520   Rating: 4.20/5    Votes: 2   Popularity: 1.26
Licence: The Code Project Open License (CPOL)      Bookmarked: 1   Downloaded: 0
Please Sign up or sign in to vote.
Using BenchmarkDotNet, this post will analyse the individual optimisations and show how much faster each change is.
Posted: 12 Oct 2017   Updated: 13 Oct 2017   Views: 12,330   Rating: 5.00/5    Votes: 15   Popularity: 5.73
Licence: The Code Project Open License (CPOL)      Bookmarked: 11   Downloaded: 0
Please Sign up or sign in to vote.
Analyzing C# code on GitHub with BigQuery
Posted: 8 Nov 2017   Updated: 9 Nov 2017   Views: 8,582   Rating: 4.98/5    Votes: 11   Popularity: 5.19
Licence: The Code Project Open License (CPOL)      Bookmarked: 7   Downloaded: 0
Please Sign up or sign in to vote.
Generics in C# are certainly very useful and I find it amazing that we almost didn’t get them: What would the cost of inaction have been? What would the cost of failure have been? No generics in C# 2.0? No LINQ in C# 3.0? No TPL in C# 4.0? No Async in C# 5.0?
How To
Posted: 25 May 2017   Updated: 26 May 2017   Views: 11,400   Rating: 4.95/5    Votes: 19   Popularity: 6.34
Licence: The Code Project Open License (CPOL)      Bookmarked: 5   Downloaded: 0
Please Sign up or sign in to vote.
Lowering in the C# compiler (and what happens when you misuse it)
C++ / CLI
C++/CLI
Posted: 3 Oct 2016   Updated: 4 Oct 2016   Views: 6,710   Rating: 5.00/5    Votes: 2   Popularity: 1.51
Licence: The Code Project Open License (CPOL)      Bookmarked: 2   Downloaded: 0
Please Sign up or sign in to vote.
How to add a verb to the dotnet CLI tooling
General
Posted: 13 Apr 2017   Updated: 13 Apr 2017   Views: 7,853   Rating: 5.00/5    Votes: 3   Popularity: 2.39
Licence: The Code Project Open License (CPOL)      Bookmarked: 6   Downloaded: 0
Please Sign up or sign in to vote.
CLR thread pool 'thread injection' algorithm
Other .NET Languages
General
Posted: 13 Jan 2017   Updated: 13 Jan 2017   Views: 5,300   Rating: 5.00/5    Votes: 1   Popularity: 0.00
Licence: The Code Project Open License (CPOL)      Bookmarked: 3   Downloaded: 0
Please Sign up or sign in to vote.
In this article, I want to see how the .NET GC compares to the other runtime implementations.
.NET Framework
General
Posted: 9 Sep 2016   Updated: 10 Sep 2016   Views: 8,760   Rating: 5.00/5    Votes: 2   Popularity: 1.51
Licence: The Code Project Open License (CPOL)      Bookmarked: 5   Downloaded: 0
Please Sign up or sign in to vote.
How the .NET CLI tooling runs your code
Posted: 9 Sep 2016   Updated: 15 Sep 2016   Views: 8,760   Rating: 4.78/5    Votes: 7   Popularity: 4.04
Licence: The Code Project Open License (CPOL)      Bookmarked: 13   Downloaded: 0
Please Sign up or sign in to vote.
As part of an ongoing attempt to learn more about how a real-life Garbage Collector (GC) works (see part 1) and after being inspired by Julia Evans’ excellent post gzip + poetry = awesome I spent a some time writing a tool to enable a live visualisation of the .NET GC in action.
Posted: 9 Sep 2016   Updated: 15 Sep 2016   Views: 5,360   Rating: 5.00/5    Votes: 1   Popularity: 0.00
Licence: The Code Project Open License (CPOL)      Bookmarked: 1   Downloaded: 0
Please Sign up or sign in to vote.
GC pauses and safe points
Posted: 11 Sep 2016   Updated: 15 Sep 2016   Views: 10,290   Rating: 5.00/5    Votes: 2   Popularity: 1.51
Licence: The Code Project Open License (CPOL)      Bookmarked: 6   Downloaded: 0
Please Sign up or sign in to vote.
This series is an attempt to learn more about how a real-life “Garbage Collector” (GC) works internally, i.e., not so much “what it does”, but “how it does it” at a low-level.
Posted: 15 Sep 2016   Updated: 16 Sep 2016   Views: 7,302   Rating: 5.00/5    Votes: 3   Popularity: 2.39
Licence: The Code Project Open License (CPOL)      Bookmarked: 1   Downloaded: 0
Please Sign up or sign in to vote.
There is an update to this post, based on feedback I received.In my last post I talked about the techniques that the Roslyn team used to minimise the effect of the Garbage Collector (GC). Firstly I guess its worth discussing what the actual issue is.GC Pauses and LatencyIn early versions of
Posted: 16 Sep 2016   Updated: 16 Sep 2016   Views: 7,701   Rating: 5.00/5    Votes: 4   Popularity: 3.01
Licence: The Code Project Open License (CPOL)      Bookmarked: 1   Downloaded: 0
Please Sign up or sign in to vote.
In my previous post, I talked about some of the general performance lessons that can be learnt from the Roslyn project. This post builds on that and looks at specific examples from the code base.Generally the performance gains within Roslyn come down to one thing: Ensuring the garbage colle
Posted: 31 Oct 2016   Updated: 31 Oct 2016   Views: 8,883   Rating: 5.00/5    Votes: 8   Popularity: 4.52
Licence: The Code Project Open License (CPOL)      Bookmarked: 2   Downloaded: 0
Please Sign up or sign in to vote.
This post discusses how the "fixed" keyword works
Posted: 14 Dec 2016   Updated: 15 Dec 2016   Views: 12,354   Rating: 5.00/5    Votes: 17   Popularity: 6.15
Licence: The Code Project Open License (CPOL)      Bookmarked: 15   Downloaded: 0
Please Sign up or sign in to vote.
Why is Reflection slow?
Posted: 20 Dec 2016   Updated: 20 Dec 2016   Views: 3,791   Rating: 5.00/5    Votes: 1   Popularity: 0.00
Licence: The Code Project Open License (CPOL)      Bookmarked: 2   Downloaded: 0
Please Sign up or sign in to vote.
Why Exceptions should be Exceptional
Posted: 6 Apr 2017   Updated: 7 Apr 2017   Views: 9,110   Rating: 5.00/5    Votes: 6   Popularity: 3.89
Licence: The Code Project Open License (CPOL)      Bookmarked: 6   Downloaded: 0
Please Sign up or sign in to vote.
Whilst writing a previous blog post I stumbled across the .NET Interpreter, tucked away in the source code.
Posted: 8 May 2017   Updated: 16 May 2017   Views: 11,000   Rating: 5.00/5    Votes: 4   Popularity: 3.01
Licence: The Code Project Open License (CPOL)      Bookmarked: 1   Downloaded: 0
Please Sign up or sign in to vote.
A while ago I wrote about the 'special relationship' that exists between Strings and the CLR, well it turns out that Arrays and the CLR have an even deeper one
Posted: 15 Jun 2017   Updated: 15 Jun 2017   Views: 5,721   Rating: 5.00/5    Votes: 6   Popularity: 3.89
Licence: The Code Project Open License (CPOL)      Bookmarked: 9   Downloaded: 0
Please Sign up or sign in to vote.
How does the .NET Runtime (CLR) actually load a Type?
Posted: 10 Jul 2017   Updated: 10 Jul 2017   Views: 6,184   Rating: 5.00/5    Votes: 11   Popularity: 5.21
Licence: The Code Project Open License (CPOL)      Bookmarked: 10   Downloaded: 0
Please Sign up or sign in to vote.
Fortunately, there’s a fantastic tool that makes it very easy for us to get an overview of memory usage within the CLR itself. It’s called VMMap and it’s part of the excellent Sysinternals Suite.
Posted: 2 Aug 2017   Updated: 2 Aug 2017   Views: 5,541   Rating: 5.00/5    Votes: 2   Popularity: 1.51
Licence: The Code Project Open License (CPOL)      Bookmarked: 1   Downloaded: 0
Please Sign up or sign in to vote.
It’s a fundamental part of .NET and can often happen without you knowing, but how does it actually work? What is the .NET Runtime doing to make boxing possible?
How To
Posted: 9 Sep 2016   Updated: 9 Sep 2016   Views: 9,280   Rating: 0.00/5    Votes: 0   Popularity: 0.00
Licence: The Code Project Open License (CPOL)      Bookmarked: 3   Downloaded: 0
Please Sign up or sign in to vote.
If you’ve ever spent time debugging .NET memory dumps in WinDBG, you will be familiar with the commands shown below, which aren’t always the most straight-forward to work with!
Posted: 9 Sep 2016   Updated: 13 Sep 2016   Views: 12,381   Rating: 5.00/5    Votes: 3   Popularity: 2.39
Licence: The Code Project Open License (CPOL)      Bookmarked: 6   Downloaded: 0
Please Sign up or sign in to vote.
How to prevent .NET Garbage collections with the TryStartNoGCRegion API
Posted: 11 Sep 2016   Updated: 15 Sep 2016   Views: 9,000   Rating: 4.50/5    Votes: 2   Popularity: 1.35
Licence: The Code Project Open License (CPOL)      Bookmarked: 1   Downloaded: 0
Please Sign up or sign in to vote.
Adventures in Benchmarking - Method Inlining
Posted: 11 Sep 2016   Updated: 15 Sep 2016   Views: 7,371   Rating: 5.00/5    Votes: 4   Popularity: 3.01
Licence: The Code Project Open License (CPOL)      Bookmarked: 4   Downloaded: 0
Please Sign up or sign in to vote.
Adventures in Benchmarking - Memory Allocations
Posted: 10 Sep 2016   Updated: 15 Sep 2016   Views: 7,162   Rating: 5.00/5    Votes: 3   Popularity: 2.39
Licence: The Code Project Open License (CPOL)      Bookmarked: 3   Downloaded: 0
Please Sign up or sign in to vote.
Adventures in benchmarking - performance golf
Posted: 19 May 2017   Updated: 19 May 2017   Views: 6,661   Rating: 4.97/5    Votes: 14   Popularity: 5.69
Licence: The Code Project Open License (CPOL)      Bookmarked: 6   Downloaded: 0
Please Sign up or sign in to vote.
How to add a new Bytecode instruction to the CLR
LINQ
General
Posted: 29 Sep 2016   Updated: 29 Sep 2016   Views: 10,753   Rating: 5.00/5    Votes: 7   Popularity: 4.23
Licence: The Code Project Open License (CPOL)      Bookmarked: 9   Downloaded: 0
Please Sign up or sign in to vote.
How to optimize Linq
Universal Windows Platform and Windows Runtime
General
Posted: 20 Oct 2017   Updated: 20 Oct 2017   Views: 9,421   Rating: 5.00/5    Votes: 11   Popularity: 5.21
Licence: The Code Project Open License (CPOL)      Bookmarked: 6   Downloaded: 0
Please Sign up or sign in to vote.
Recently I was listening to the excellent DotNetRocks podcast and they had Steven Sanderson (of Knockout.js fame) talking about ‘WebAssembly and Blazor’. In case you haven’t heard about it, Blazor is an attempt to bring .NET to the browser, using the magic of WebAssembly. If you want more
Algorithms & Recipes
General
Posted: 12 Sep 2016   Updated: 13 Sep 2016   Views: 4,880   Rating: 5.00/5    Votes: 2   Popularity: 1.51
Licence: The Code Project Open License (CPOL)      Bookmarked: 1   Downloaded: 0
Please Sign up or sign in to vote.
Stack overflow Tag engine - Part 3
Best Practices
General
Posted: 13 Sep 2016   Updated: 13 Sep 2016   Views: 4,491   Rating: 5.00/5    Votes: 1   Popularity: 0.00
Licence: The Code Project Open License (CPOL)      Bookmarked: 1   Downloaded: 0
Please Sign up or sign in to vote.
Benchmarking is hard, it’s very easy to end up “not measuring, what you think you are measuring”
Posted: 14 Sep 2016   Updated: 14 Sep 2016   Views: 7,291   Rating: 5.00/5    Votes: 3   Popularity: 2.39
Licence: The Code Project Open License (CPOL)      Bookmarked: 3   Downloaded: 0
Please Sign up or sign in to vote.
Stack overflow - performance lessons - Part 1
Posted: 15 Sep 2016   Updated: 15 Sep 2016   Views: 5,621   Rating: 5.00/5    Votes: 1   Popularity: 0.00
Licence: The Code Project Open License (CPOL)      Bookmarked: 2   Downloaded: 0
Please Sign up or sign in to vote.
Recently I’ve spent some time porting HdrHistogram from Java to .NET, it’s been great to learn a bit more about Java and get a better understanding of some low-level code.
Posted: 15 Sep 2016   Updated: 15 Sep 2016   Views: 4,691   Rating: 0.00/5    Votes: 0   Popularity: 0.00
Licence: The Code Project Open License (CPOL)      Bookmarked: 2   Downloaded: 0
Please Sign up or sign in to vote.
Measuring performance accurately is hard. But it is a whole lot easier if someone with experience takes the time to explain your mistakes to you! This is an update to my previous post.
Uncategorised Technical Blogs
General
Posted: 12 Sep 2016   Updated: 13 Sep 2016   Views: 4,340   Rating: 5.00/5    Votes: 1   Popularity: 0.00
Licence: The Code Project Open License (CPOL)      Bookmarked: 0   Downloaded: 0
Please Sign up or sign in to vote.
Stack Overflow Tag Engine – Part 2
Posted: 13 Sep 2016   Updated: 13 Sep 2016   Views: 4,790   Rating: 5.00/5    Votes: 2   Popularity: 1.51
Licence: The Code Project Open License (CPOL)      Bookmarked: 1   Downloaded: 0
Please Sign up or sign in to vote.
Stack Overflow Tag Engine – Part 1
No tips have been posted.
No reference articles have been posted.
No projects have been posted.

matt warren
Software Developer
United Kingdom United Kingdom
No Biography provided