.net是动态编译还是静态编译?该如何解决
答案:2 悬赏:70 手机版
解决时间 2021-03-21 08:09
- 提问者网友:放下
- 2021-03-21 03:16
.net是动态编译还是静态编译?该如何解决
最佳答案
- 五星知识达人网友:一袍清酒付
- 2021-03-21 03:46
------解决方案--------------------------------------------------------
生成时不同的语言使用不同的编译器进行一次编译,成为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参与
------解决方案--------------------------------------------------------
生成时不同的语言使用不同的编译器进行一次编译,成为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参与
------解决方案--------------------------------------------------------
全部回答
- 1楼网友:孤独入客枕
- 2021-03-21 04:32
可以私聊我~
我要举报
如以上回答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
点此我要举报以上问答信息
大家都在看
推荐资讯