Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How do I verify that ryujit is jitting my app?

Tags:

c#

jit

ryujit

I've installed the new Jit compiler for .NET RyuJit, and setup the AltJit=* key in .NetFramework in regedit as described in the installation docs. http://blogs.msdn.com/b/dotnet/archive/2013/09/30/ryujit-the-next-generation-jit-compiler.aspx

So how do I verify that RyuJit is actually beeing used?

like image 719
Roger Johansson Avatar asked Mar 15 '14 09:03

Roger Johansson


2 Answers

Setup a do-nothing project with Project + Properties:

  • Build tab, untick the Prefer 32-bit checkbox
  • Debug tab, tick the Enable native code debugging

Debug + Step Into. The Output window shows DLLs getting loaded. This line is what you are looking for:

'ConsoleApplication1.exe': Loaded 'C:\Windows\Microsoft.NET\Framework64\v4.0.30319\protojit.dll', Cannot find or open the PDB file.

Also visible from the Debug + Windows + Modules debugger window. protojit.dll is the name of the new jitter. Accurate for the CTP2 version, I can't guess if it will still be "proto" once it starts shipping.


Update: now shipping in .NET 4.6. It substitutes the original jitter using the clrjit.dll filename. The legacy version is still around and can be used when the new jitter causes trouble, its name is compatjit.dll. More details in this post.

like image 110
Hans Passant Avatar answered Oct 13 '22 12:10

Hans Passant


tasklist /M protojit.dll from the command-line also works:

http://blogs.msdn.com/b/clrcodegeneration/archive/2014/04/03/ryujit-ctp3-how-to-use-simd.aspx

like image 6
TheBuildGuy Avatar answered Oct 13 '22 12:10

TheBuildGuy