The .NET 11 JIT Devirtualizes Generic Virtual Methods, and the Allocation Goes With Them
Stephen Toub's Performance Improvements in .NET 11 post shows generic virtual method calls dropping from 6.7 ns and 24 bytes to 1.8 ns and zero allocation. Three RyuJIT pull requests unlocked inlining on the dispatch that used to be the most opaque one in .NET.