日本国产亚洲-日本国产一区-日本国产一区二区三区-日本韩国欧美一区-日本韩国欧美在线-日本韩国欧美在线观看

當前位置:雨林木風下載站 > 技術開發教程 > 詳細頁面

NET框架程序設計讀書筆記(3)--執行程序集代碼

NET框架程序設計讀書筆記(3)--執行程序集代碼

更新時間:2022-05-05 文章作者:未知 信息來源:網絡 閱讀次數:

1.4執行程序集代碼

托管模塊中包含著元數據和IL代碼。IL是由微軟在咨詢了一些商業和學術上的語言編譯器作者之后開發的一種獨立于CPU的機器語言。IL要比大多數CPU機器語言高級得多,它可以理解對象類型,并且擁有很多高級的指令,這些指令可以創建和初始化對象,調用對像上的虛方法以直接操作數組元素。它甚至還有拋出和捕獲異常的指令。我們可以把IL視 作一種面向對像的機器語言。

通常情況上,開發人員會使用一門高級語言,比如:C#或Visual Basic)。這些語言的編譯器産的將是IL代碼。當然,我們也可以直接以匯編語言的方法寫IL程序。微軟也提供了一個IL匯編器:ILAsm.exe,另外還有一個反匯編器:ILDdsm.exe 。

C# 或者Visual Basic 等高級語言提供的都只是CLR全部功能的一個子集。 IL匯編語言允許開發人員獲取CLR所有的功能。

總結IL的特點如下:

1、面向對像特性,與其他匯編不同。

2、IL可以獲取CLR所有的功能

3、IL并不束縛于任何特定的CPU平臺,也就是說他也可以夸平臺。



.net程序執行過程如下:

1 一個方法執行之前,CLR首先檢測Main中代碼引用的所有類型,CLR會分配一個內部的數據結構,該數據結構用于管理對所引用類型的訪問。

2、當該數據結構被初始化時,CLR將把每一個條目設置 為CLR內部的一個沒有正式記錄的函數,我們暫且稱該函數為 JITCompiler。

3、當Main方法第一次調用引用的類型的方法成員時,JITCompiler函數將被調用,該函數負責將一個方法的IL代碼編譯成本地CPU指令。

1、 JITCompiler將前面第2步的數據結構中的要調用的真實方法的地址替換成包含剛剛編譯好的CPU指令的內存塊地址。

2、 JITCompiler跳轉到該內存塊中的代碼上,開始執行。



注意:一個類型的所有方法只會編譯一次,當這個類型的方法又被調用時,將會使用之前已經編譯過的代碼,這樣只有在首次調用時,才會產生性能損失。

也就是說托管代碼跟非托管代碼相比,性能上的損失是非常小的,近乎微不足道。



托管代碼在性能上的優點:



1、 在新型的如奔4CPU上,JIT編譯器能產生利用新型CPU提供的特殊指令的本地代碼。而非托管應用程序通常被編譯為向具有最小通用功能集合的CPU平臺,一般會避免使用新型CPU提供的特殊指令。而這些特殊指令往往會在較新的Cpu上為應用程序帶來很高的性能提升中。

2、 JIT編譯器能檢測到正在運行的機器上某些總是返回錯誤的布爾測試。例如:



If(numberOfCPUs>1)

{



}



如果宿主機器只有一個CPU,那么對于該段代碼,JIT編譯器將不會產生任何CPU指令。針對宿主機器的本地代碼鶁會得到更好的調整:代碼量將變得更小,執行速度也會更快。



當然,我們可以利用Ngen.exe工具,將IL代碼轉化為本地代碼,并生成一個文件,這樣執行程序時,CLR將自動檢查是否有個預編譯的版本存在,如果存在,CLR將加載預編譯的代碼,不需要額外的運行時編譯。



1.4.1 IL與代碼驗證



1、 IL是一種基于堆棧的語言

2、 IL沒有提供操作寄 存器的指令,開發人員可以很容易地產生IL代碼。

3、 IL需要的指令也比較少。

4、 IL指令是無類型的。

5、 IL對CPU實現了抽象。



IL的最大優點是:提高了應用程序的健壯性,當IL代碼被編譯為本地Cpu指令時,CLR將執行一個稱作驗證的過程。



驗證過程檢查高級IL代碼,確保它做的每件事情都是“安全”的。以下是檢驗的一些條目:

1、 不能從未初始化的內存中讀取數據。

2、 每個方法都必須傳入正確的參數個數,且各個參數的類型要正確匹配。

3、 每個方法的返回值都必須被正確地使用。

4、 每個方法都必須有一個返回語句

。。。。

如果驗證不通過,將有一個System.Security.VerificationException異常被拋出,阻止方法繼續執行。



驗證的優點:

通過驗證的代碼,我們可以確保它們不會訪問它們不應該訪問的的內存,因此也就不會干擾另一個應用程序的代碼。這意味著我們可以在一個單獨的windows虛擬地址空間內運行多個托管

溫馨提示:喜歡本站的話,請收藏一下本站!

本類教程下載

系統下載排行

主站蜘蛛池模板: 日本乱人伦片中文字幕三区 | 欧美大片一区 | 久久99精品久久久久久国产越南 | 国产成人精品三区 | 国产一级毛片大陆 | 久久综合亚洲鲁鲁五月天欧美 | 97久久综合九色综合 | 国产成人啪精品 | 深夜福利国产精品亚洲尤物 | 初高中生洗澡福利视频网站 | 久久婷婷网 | 久草午夜 | 午夜在线免费视频 | 51国产偷自视频区视频手机播器 | 91精品国产自产在线观看高清 | 国产黑丝视频在线观看 | 亚洲跨种族黑人xxx 亚洲另类 专区 欧美 制服 | 成人无遮挡毛片免费看 | 亚洲精品国产成人专区 | 亚洲精品久久九九精品 | 免费aⅴ视频 | 91精品国产自产91精品 | 日本vs欧美一区二区三区 | 曰韩一级| 国产精品久久免费 | 天天草夜夜爽 | 欧美视频免费一区二区三区 | 成人福利视频在线观看网址 | 国产欧美另类第一页 | 2020亚洲欧美日韩在线观看 | 色老板在线观看永久免费视频 | 97色在线视频观看香蕉 | 午夜影院操一 | 国产精品日本 | 天天拍夜夜操 | 久久久精品在观看999 | 2021色噜噜狠狠综曰曰曰 | 日韩福利在线视频 | 国产黑丝袜在线 | 中文字幕一区二区三区有限公司 | 亚洲精品一区二区三区中文字幕 |