这是一个非常基本的问题。
根据MSDN MSIL To Native Code按需编辑JIT。 每次运行程序集时,JIT编译器都会将MSIL转换为Native语言?或者当我们第一次运行程序集时,它会将本机语言代码转换并存储到某个地方?
提前致谢!
答案 0 :(得分:6)
JIT编译器在您启动应用程序时编译代码并将其存储在内存中。
此代码可以由ngen.exe
(Native Image Generator)缓存并存储在本机映像缓存中。这将在您下次启动应用程序时自动加载,并且您不必再次JIT MSIL代码。
Ngen.exe创建本机映像,这些映像是包含已编译的特定于处理器的计算机代码的文件,并将它们安装到本地计算机上的本机映像缓存中。运行时可以使用缓存中的本机映像,而不是使用实时(JIT)编译器来编译原始程序集。
可以在类似于C:\Windows\assembly\NativeImages_v4.0.30319_64
的路径上找到本机图像缓存。无法通过Windows资源管理器访问此路径,因此请使用cmd
或PowerShell。