用C#编写的代码经C#编译器后,并非生成本地代码而是生成托管代码
生活随笔
收集整理的這篇文章主要介紹了
用C#编写的代码经C#编译器后,并非生成本地代码而是生成托管代码
小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.
用C#編寫(xiě)的代碼經(jīng)C#編譯器后,并非生成本地代碼而是生成托管代碼。也就是說(shuō),程序集在打包時(shí)是連同CLR一起打包的。在客戶(hù)端的機(jī)器上,CLR一行行的讀取IL,在讀取每行IL時(shí),CLR利用JIT編譯器將IL編譯成本地的CPU指令。若要節(jié)省這段JIT編譯器進(jìn)行編譯的時(shí)間,可以利用ngen.exe生成程序集的本機(jī)鏡像,生成的本機(jī)鏡像保存在全局程序集(GAC)的一塊保留區(qū)域內(nèi)。
?????? 下面舉個(gè)例子,進(jìn)行簡(jiǎn)單說(shuō)明。打開(kāi)VS2005,新建一個(gè)windows應(yīng)用程序,命名為AP。在添加兩個(gè)類(lèi)庫(kù)項(xiàng)目,分別命名為A和B,且進(jìn)行強(qiáng)命名。
?????? 在命令提示行內(nèi)打入如下,命令就可以創(chuàng)建本機(jī)鏡像:
?????? ngen AP.exe
?????? "A, Version=1.0.0.0, Culture=neutral, PublicKeyToken=0038abc9deabfle5",
?????? "B, Version=1.0.0.0, Culture=neutral, PublicKeyToken=0038abc9deabfle5"
?????? 之后,打開(kāi)“控制面板”—“管理工具”—“microsoft .net framework 2.0 配置”在程序集緩存的節(jié)點(diǎn)下就可以看到AP.EXE,A.DLL,B.DLL三個(gè)程序集,其類(lèi)型顯示也不再是MSIL而是X86。
總結(jié)
以上是生活随笔為你收集整理的用C#编写的代码经C#编译器后,并非生成本地代码而是生成托管代码的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: [转载]使用.net 2003中的nge
- 下一篇: GAC中的所有的Assembly都会存放