首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET Framework >

.net是动态编译还是静态编译?该如何解决

2012-01-14 
.net是动态编译还是静态编译?在C语言里面好像有这么一个设置吧,不知在.net环境(VB.NETorC#.NET)下是不是有

.net是动态编译还是静态编译?
在C语言里面好像有这么一个设置吧,不知在.net环境(VB.NET   or   C#.NET)下是不是有这样的设置,或是只有一种编译。

[解决办法]
生成时不同的语言使用不同的编译器进行一次编译,成为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参与
[解决办法]
2.又叫做AOT(Ahead of time)
[解决办法]
ATField() zj

热点排行