CLR執行模型《CLR via c#》第一章

這是我看《CLR via c#》第四版的一些小筆記和總結,若有不對的地方,歡迎指出。c#

《CLR via c#》第一章CLR的執行模型講的是如何將源代碼生成爲一個應用程序,或者生成爲一組可從新分發的組件(文件)- 這些組件(文件)包含類型(類和結構等),解釋了應用程序如何執行。工具

CLR(common language runtime ,公共語言運行時),顧名思義,它是一個能夠支持多種語言的「運行時」。性能

一般咱們c#程序的執行過程是優化

 

CLR的JIT(即時編譯器)把IL代碼編譯成機器指令。3d

NGen.exe工具將程序集的IL代碼編譯成本機代碼,並將這些代碼保存到一個磁盤中。在運行加載程序集時,CLR自動判斷是否存在運行該程序集的預編譯版本。使用NGen.exe工具雖然表面性能比較好,但由於它沒有像JIT同樣優化代碼,因此在選擇使用時,應該注意。對象

CTS(common type system ,通用類型系統)是用來描述類型的定義和行爲。CTS是定義類的一種規範,它規定了一個類型能夠包含零個或者多個成員,同時還指定了類型可見性規則以及類型成員的訪問規則,除此以外,CTS還爲類型繼承,虛方法,對象生存期等定義了相應的規則。blog

面向CLR的語言不管是用哪一種「代碼的語言」最後的「代碼的行爲」都是同樣的,由於最終都是由CLR的CTS來定義類型的行爲。繼承

CLS(common language specification,公共語言規範)詳細定義了一個面向CLR語言的共有的最小功能集(語法規則)。通常來講,你的代碼只要符合了CLS就能實現跨語言訪問。ci

相關文章
相關標籤/搜索