R2R stomping – are you ready to run?

What if we told you that the reality you perceive with your very own eyes is not always what it seems? That the .NET code you witness executing within your beloved managed debugger, such as dnSpy/dnSpyEx, may not necessarily be the same code that operates outside of its bounds? .NET application startup time and latency can be improved by compiling application assemblies as ReadyToRun (R2R) format files, which is a form of ahead-of-time (AOT) compilation.

Binaries compiled this way contain similar native code to what JIT would produce, but they are larger because they contain both intermediate language (IL) code and the native version of the “same code”. Or at least, that’s what documentation says.

Read more…
Source: Checkpoint