【发布时间】:2014-07-25 07:07:50
【问题描述】:
这是关于 .NET 的。
-
代码(高级:c#,vb.net - 人类可以理解)在 VS 中编译并生成 dll/exe 这称为 IL(这也或多或少是人类可以理解的)。
当我们第一次在机器上运行这个 dll/exe 时,CLR/JIT 将 IL 转换为机器代码(二进制格式:0 和 1 - 这是人类无法理解的)。该机器码保存在内存中,除非重启系统,否则下次不需要转换。
ILASM.exe 可用于将 dll/exe(IL 代码)转换为机器码,而 ILDASM.exe 则相反。
如果编译器生成二进制格式的 exe/dll (IL),那么 JIT 的目的是什么?既然代码已经是二进制格式了……是不是说IL的二进制代码是通过JIT转成二进制机器码的?
请纠正我的上述说法。
【问题讨论】: