Where can I get information on changes to the RyuJIT compiler?

219 Views Asked by At

I have some mathematical functions written in C# and associated performance benchmarks using BenchmarkDotNet.

Today I installed Visual Studio 15.2 and according to the output from BenchmarkDotNet (a) some mathematical operations are now significantly faster than before (e.g. exp and tanh in particular appear to be multiple times faster) (b) The RyuJIT version has changed from v4.6.1648.0 to v4.7.2098.0.

I would like to understand what changes have occurred that have resulted in these performance increases.

1

There are 1 best solutions below

0
Andy Ayers On

You can track improvements in RyuJit by following the work in the CoreCLR repo.

For the past few years improvements in RyuJit made in CoreCLR have also been propagated back to the full .Net Framework and apply to apps running in 64 bit runtimes. There is a rough correspondence between Core versions (or sometimes CoreCLR commits) and desktop versions:

  • .Net Core 1.0 ~ .Net Framework 4.6.2
  • .Net Core 1.1 ~ .Net Framework 4.7
  • .Net Core 2.0 ~ .Net Framework 4.7.1
  • CoreCLR master as of 10/2017 ~ .Net Framework 4.7.2
  • .Net Core 2.1 ~ ???

.Net Framework codegen for 32 bit runtimes is done by an older jit (aka JIT32) which has not changed much in recent years.

As you note, .Net Framework comes preinstalled with Windows so if you update your OS you are also likely updating the .Net Framework version. Updates are also shipped via windows updates for older OSs so over time more an more installations will be running the latest version (4.7.2 as of today).