发布网友 发布时间:2022-05-19 13:48
共2个回答
热心网友 时间:2022-05-19 15:17
------解决方案--------------------------------------------------------生成时不同的语言使用不同的编译器进行一次编译,成为IL代码。IL代码通过JIT动态编译成为机器语言。------解决方案--------------------------------------------------------------解决方案--------------------------------------------------------visual c++.net可以/CLR------解决方案--------------------------------------------------------可以有动态和静态的说。------解决方案--------------------------------------------------------大致有两种情形,动态和静态:1. 一般情况下是JIT (Just in time)。CLR在执行方法的时候会调用一个Stub,这个Stub如过函数没有被Jit则指向JIT函数,执行则会被自动JIT,然后Patch返回地址,返回之后直接执行JIT之后的本地代码,如果已经JIT,则指向JIT后的代码2. 如果Assembly已经被NGEN过,这种情况下方法的Stub直接指向NGEN之后的代码,这个代码已经被Prejit过,可以直接调用而无需JIT参与------解决方案--------------------------------------------------------