存储MSIL到Native代码

时间:2014-05-06 12:32:46

标签: c# jit

这是一个非常基本的问题。

根据MSDN MSIL To Native Code按需编辑JIT。 每次运行程序集时,JIT编译器都会将MSIL转换为Native语言?或者当我们第一次运行程序集时,它会将本机语言代码转换并存储到某个地方?

提前致谢!

1 个答案:

答案 0 :(得分:6)

JIT编译器在您启动应用程序时编译代码并将其存储在内存中。

此代码可以ngen.exe (Native Image Generator)缓存并存储在本机映像缓存中。这将在您下次启动应用程序时自动加载,并且您不必再次JIT MSIL代码。

  

Ngen.exe创建本机映像,这些映像是包含已编译的特定于处理器的计算机代码的文件,并将它们安装到本地计算机上的本机映像缓存中。运行时可以使用缓存中的本机映像,而不是使用实时(JIT)编译器来编译原始程序集。

可以在类似于C:\Windows\assembly\NativeImages_v4.0.30319_64的路径上找到本机图像缓存。无法通过Windows资源管理器访问此路径,因此请使用cmd或PowerShell。