MSIL的兩種編譯模式
開發人員編寫的受控代碼在被編譯成MSIL之后,在運行時會被再編譯為原生代碼。有兩種方式可以完成這個目標,一種是在運行期逐一編譯Methods的MSIL代碼,另一種是在裝配件被運行前整批的全部編譯為原生代碼。
將MSIL編譯為原生代碼的一個最常見的辦法,就是先讓CLR裝在裝配件,然后在每個Method第一次被調用時編譯之。由于每個Method都只在第一次被調用時才被編譯,所以我們稱之為即時編譯(JIT)。每一個Methods在第一次調用被編譯之后便會被緩存起來,這樣后面再次調用的時候便無須再編譯。
當一個Method被編譯時,同時也被檢查型別安全,這個過程被稱為驗證(verification),檢查范圍包括method的MSIL和metadata,以確保代碼沒有做非法訪問。CLR內建安全功能”即依賴這個驗證過程,它也被用于檢驗受控代碼行為的其他方面。
posted on 2007-10-10 22:13 lbq1221119 閱讀(619) 評論(3) 收藏 舉報
浙公網安備 33010602011771號