RyuJIT's Improved Compiler Boosts .NET
Microsoft's work continues unabated on a new Just-in-Time (JIT) compiler to replace what is currently in use with the .NET Framework. The compiler's (codenamed RyuJIT) latest CTP demonstrates significant improvement over both the first preview release and the current JIT compiler (JIT64) that is in production use.
One of the accomplishments demonstrated by the first CTP was RyuJIT's ability to generate code faster than JIT64. According to Microsoft, RyuJIT is approximately twice as fast as JIT64 at generating code. With CTP2, the team maintained this improvement while improving the quality of the generated code. This is clearly an important step because while compilation times are important, it is even more important that the end-result be efficient.
So how does CTP2 compare? Based on Microsoft's tests, CTP2 is significantly faster than CTP1 in several areas with only slight performance regression on a few benchmarks. Compared to JIT64, the results of CTP2 are more mixed. While there are areas of significant gains in some areas, there are also areas where CTP2 is remains significantly slower. Overall the balance tips slightly in favor of CTP2 but there is still much work to be done.
For an in-depth examination of the performance results provided in the CTP2 announcement, Microsoft's Kevin Frei wrote an article detailing the benchmarks used for testing. Some of the notable benchmarks used include the source code for the Roslyn project, SciMark, and FsharpFFT.
RyuJIT CTP2 is available for download now, but keep in mind it requires Windows 8.1 or Windows Server 2012R2. Wider operating system support is expected when RyuJIT is formally released into production.
Brandon Holt, Preston Briggs, Luis Ceze, Mark Oskin May 21, 2015
Kai Kreuzer, Olaf Weinmann May 21, 2015