四虎精品视频-四虎精品成人免费网站-四虎黄色网-四虎国产视频-国产免费91-国产蜜臀97一区二区三区

.Net Discovery 系列之五--Me JIT(上)

系列文章導航:

.NET Discovery 系列之一--string從入門到精通(上)

.NET Discovery 系列之二--string從入門到精通(勘誤版下)

.NET Discovery 系列之三--深入理解.NET垃圾收集機制(上)

.NET Discovery 系列之四--深入理解.NET垃圾收集機制(下)

.NET Discovery 系列之五--Me JIT(上)

.NET Discovery 系列之六--Me JIT(下)

.NET Discovery 系列之七--深入理解.NET垃圾收集機制(拾貝篇)


  JIT(Just In Time簡稱JIT)是.NET邊運行邊編譯的一種機制,這種機制的命名來源于豐田汽車在20世紀60年代實行的一種生產方式,中文譯為“準時制”。

  .NET 的JIT編譯器在設計初衷和運行方式來上講,都與豐田汽車的這種“準時生產”思想體系有著很大的相似之處,所以讓我們先來透過“準時生產”方式來理解.NET的JIT機制吧。

  “準時生產”的基本思想可概括為“在需要的時候,按需要的量生產所需的產品”,這正是.NET JIT編譯器的設計初衷,即在需要的時候編譯需要的代碼。

  第一節.Me JIT

  以C#為例,在C#代碼運行前,一般會經過兩次編譯,第一階段是C#代碼向MSIL的編譯,第二階段是IL向本地代碼的編譯。第一階段的編譯成果是生成托管模塊,第二階段的編譯成果是生成本地代碼以供運行,從這里各位同學可以看出,第一階段生成的MSIL是不能直接運行的。

  這里先要解釋一下什么是MSIL和托管模塊。

  MSIL:

  MSIL 全稱為Microsoft Intermediate Language,中文譯為“微軟中間語言”,它是一種介于高級語言和匯編語言之間的偽匯編語言(姑且這么叫,各位有不同意見的同學不必激動)。當用戶編譯運行一個.NET程序時,高級語言編譯器會將源代碼翻譯成一組可以獨立于CPU的指令。

  可以看出IL 包括用于加載(ldstr )、存儲(壓棧、彈棧)和初始化對象(locals)以及調用對象方法(call)的指令,還包括用于算術和邏輯運算、控制流、直接內存訪問、異常處理和其他操作的指令。

  C#代碼:

string str_test = "test";
System.String Str_test
= "test";

NET技術.Net Discovery 系列之五--Me JIT(上),轉載需保留來源!

鄭重聲明:本文版權歸原作者所有,轉載文章僅為傳播更多信息之目的,如作者信息標記有誤,請第一時間聯系我們修改或刪除,多謝。

主站蜘蛛池模板: 影视剧分娩片段合集| 斯维特拜克之歌| 无锡电视台| 七年级下册语文第八课生字拼音 | 弯刀| 大学生职业规划ppt成品| 圣洁四人行| 手机演员表| 愚人节快乐的英文| 黄色网址视频免费| 2025最火情侣头像| 艳妻互换电影| 起底员工上满8小时被扣工资的公司 | 变态的视频| 广播体操第七套视频完整版| 寡妇一级毛片视频| 座头市 电影| 朱敏荷《豺狼来了》| 团结力量歌词大全图片| 最美情侣高清免费观看视频大全| 改病句| 迷宫的十字路口讲了什么| 初恋在线观看| 诱惑的艺术| 创新点| 维拉·法梅加| 帕米尔我的家乡多么美简谱| 成人在线影片| 天下第一楼结局| 肖叮叮的剿匪记 电视剧免费观看 黑暗之心电影完整在线观看 | 出位江湖| 秦皇岛电视台| 疯狂 电影| 古建凉亭生产厂家| 刘浩存个人简介资料| 昭君出塞简谱| 双男动漫| 法瑞尔·威廉姆斯| 归亚蕾个人资料图片| 古建凉亭生产厂家| 马可个人资料简介|