91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

CLR執行模型簡介

發布時間:2020-07-31 19:55:44 來源:網絡 閱讀:615 作者:lAlbin 欄目:編程語言

1:首先先明確CLR的概念:

  CLR(Common Language Runtime):公共語言運行時,是一個可由多種編程語言使用的"運行時";

  在運行時,CLR根本不關心開發人員用的是哪一種語言來變寫代碼,它只關注語言是否是面向CLR(面向運行時)的.

2:CLR的核心功能包括:

  內存管理、程序集加載、安全性、異常處理和線程同步。

3:如圖:

CLR執行模型簡介

無論是用的是哪一種編譯器,結果都是一個托管模塊(managed module),托管代碼時一個標準的32位/64位Microsoft Windows可移植執行體(PE32/PE32+)文件.

本地代碼編譯器,生成的是面向特定CPU架構(X86,X64或IA64)的代碼.相反,每個面向CLR的編譯器生成的都是IL(中間語言)代碼,IL代碼也被稱為托管代碼.

除了生成IL,面向CLR的每個編譯器還要在每個托管模塊中生成完整的元數據,元數據是一組數據表.其中一些數據表描述了模塊中定義的內容,元數據其實就是編譯器所生成的一些完整數據.

4:CLR實際是不和模塊一起工作的,它是和程序集一起工作的.

5:加載公共語言運行時

  我們生成的每個程序集既可以是一個可執行應用程序,也可以是一個DLL,最終是由CLR管理這些程序集中的代碼的執行,所以必須在運行機器中安裝.NET FrameWork.WIndows一些版本系統已經內置打包了好了.NET FrameWork.不過需要我們手動的開啟.可以在控制面板中進行啟動在此就不做詳細解釋.作為開發人員,這是不需要解釋的.

6:執行程序集的代碼

 執行一個方法,第一必須把它的IL轉換為本地CPU指令,這是CLR的JIT的本質.

如圖:

CLR執行模型簡介

 就在Main方法執行之前,CLR會檢測Main的代碼引用的所有的類型,這導致CLR分配一個內部數據結構,用于管理對所引用的類型的訪問.

一個方法只有在首次調用時,才會造成一些性能損失,以后對該方法的所有調用都以本地代碼的形式全速運行.無需重新驗證IL并把它編譯成本地代碼.

JIT編譯器將本地CPU指令存儲到動態內存中,一旦應用程序終止,編譯好的代碼也會被丟棄,所以,如果將來再次運行應用程序,或者同時啟動應用程序的兩個實例,JIT編譯器必須再次將IL編譯成本地指令.

6:IL驗證.

IL是基于棧的,所以它的所有指令都要將操作數壓入(push)一個執行棧,并從棧彈出(POP)結果.由于IL沒有提供操作寄存器的指令,所以人們可以很容易地創建新的語言和編譯器,生成CLR的代碼.IL指令是無類型的.IL的好處在于是健壯和安全的,因為它編譯為CPU指令,CPU會進行驗證是否安全.

7:Framework類庫

  FCL(Framework Class Library):是一組DLL程序集的統稱,其中含有很多的類型定義,每個類型都公開了一些功能.

  Web服務:Web service 技術或者WCF技術,可以非常簡單的處理通過Internet發送的消息.

  Web窗體應用程序:Web Form

  Windows應用程序:開發windows GUI應用程序.

  富Internet應用程序:Silverlight技術,可以構建通過Internet來部署的GUI應用程序.這種程序能在Web瀏覽器的內部或外部運行,還可以在非Windows操作系統與移動設備傻瓜運行.

  Window控制臺:提供簡單快捷方便的方式,生成應用程序,編譯器.

  Window服務:可以通過.NET FrameWork 生成"服務"應用程序.

  數據庫存儲過程:編寫存儲過程

  組件庫:.NET FrameWord允許生成獨立的程序集(組件),其中包含的類型可以輕松集成到任意的程序庫中.


向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

庆阳市| 郓城县| 黑山县| 连山| 东海县| 平塘县| 太仆寺旗| 宁陵县| 文山县| 鹿泉市| 酉阳| 镇原县| 攀枝花市| 九寨沟县| 莱西市| 二连浩特市| 滨州市| 罗江县| 乡宁县| 连江县| 常宁市| 田东县| 安宁市| 民乐县| 手游| 东乡| 阿拉尔市| 凤山市| 永济市| 隆化县| 屯留县| 洪洞县| 澎湖县| 贞丰县| 仪陇县| 龙州县| 杨浦区| 河北省| 安乡县| 哈巴河县| 确山县|