存储MSIL到Native代码

use*_*308 1 c# jit

这是非常基本的问题.

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

提前致谢!

dca*_*tro 6

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

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

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

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