【问题标题】:Does JIT creates an output containing native code?JIT 是否创建包含本机代码的输出?
【发布时间】:2018-06-11 19:13:54
【问题描述】:

在作用于程序集(包含元数据和中间语言)的 JIT 编译器的上下文中:

程序集由特定语言编译在磁盘上生成,以便CLR自己独立编译,将MSIL转换为本机代码。编译后是否在磁盘上创建了可见的输出?包含二进制代码或类似文件的文件?

【问题讨论】:

标签: clr .net-assembly jit


【解决方案1】:

Here 是一篇非常明确的文章,我在其中找到了答案。基本上没有输出文件,原生代码在运行时动态存储在内存中。

当托管代码调用特定方法时,编译函数会唤醒,查找中间代码(与机器代码类似的与处理器无关的目标代码),然后将中间代码编译为可用处理器的指令。然后托管代码将这些指令保存在内存中动态分配的位置。编译函数指向原来的方法,使两者联系起来:当汇编中的方法执行时,它会执行存储在内存中的处理器指令。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2016-09-16
    • 1970-01-01
    • 2019-04-01
    • 1970-01-01
    • 1970-01-01
    • 2013-06-18
    • 2011-02-28
    相关资源
    最近更新 更多