What is “RyuJIT”?

Damir Dobric Posts

Next talks:



Follow me on Twitter: #ddobric




.NET x86 JIT-er, was originally optimized to produce code quickly so that the program starts up fast. However at that point of time x64 architecture was mostly used for server, because it was just expensive.
Because of that .NET 64-bit JIT-er was originally designed to produce efficient code throughout the long run of a server process. That means 64 JIT-er was never really optimized for fast start-up.
Today 64-bit computing become the mainstream. All machines today ship with more than or at least 4 GB of RAM. Even some smart phones use 64 architecture, although they do not need to address 64 RAM space (at least not yet).

.NET Code Generation Team has implemented the new JIT compiler codenamed “RyuJIT”. The new compiler is twice fast as the old one. Because start-up time of one .NET application depends on many complex factors, a twice faster compiling will lead to approximately 30% faster .NET application start-up. This is really great news for .NET community. 30% is in this area hard to achieve.

But, this is not all good news. As the first JIT compiler was done it was the x86  compiler. The came x64 compiler and then MDIL (JIT for Windows Phone). But today we have Windows RT too. So, JIT for ARM was need to. As you see, there are more than one JIT compiler. You might think this is good. It is good from some point of view. Unfortunately all JIT compilers have been different branches which didn’t share lot of same code base. This was very huge limitation factor from the innovation point of view.
With RyuJIT all MDIL, ARM, x86 and x64 are one code base. This will make easy innovation progress in the future.

How to activate RyuJIT?
If you just want to enable RyuJIT for one application only, then set an environment variable: COMPLUS_AltJit=*.
If you want to enable RyuJIT for machine, then set the registry key HKLM\SOFTWARE\Microsoft\.NETFramework\AltJit to the string "*".
In both cases 64-bit CLR will redirect to new RyuJIT instead of the old one JIT64.

Note that both methods do just temporary settings—change. They do not make any active changes to your machine.

You can download CTP version here for 64-bit editions of Windows 8.1 or Windows Server 2012 R2.
Related  Blog: http://blogs.msdn.com/b/clrcodegeneration/
You can send mail at ryujit@microsoft.com . The team wants to hear from you!
More about RyuJIT: http://blogs.msdn.com/b/dotnet/archive/2013/09/30/ryujit-the-next-generation-jit-compiler.aspx

Honestly, isn’t this an important step for .NET? I think, It is. Who knows, WinFX as a core of operative system might be now more realistic? If some can make JavaScript as a “cpre”, then why not .NET (WinFX)?

Posted Oct 22 2013, 08:11 AM by Damir Dobric
Filed under: ,
developers.de is a .Net Community Blog powered by daenet GmbH.