激情久久久_欧美视频区_成人av免费_不卡视频一二三区_欧美精品在欧美一区二区少妇_欧美一区二区三区的

服務器之家:專注于服務器技術及軟件下載分享
分類導航

PHP教程|ASP.NET教程|Java教程|ASP教程|編程技術|正則表達式|C/C++|IOS|C#|Swift|Android|VB|R語言|JavaScript|易語言|vb.net|

服務器之家 - 編程語言 - C# - c#源碼的執行過程詳解

c#源碼的執行過程詳解

2022-02-27 15:44張三你好 C#

在本篇文章中給大家詳細講述了c#源碼的執行過程,對此有需要的朋友們可以學習下。

要講到c#源碼執行過程 首先要提下程序集,因為clr并不是和托管摸塊打交道的,而是和程序集(dll,exe)

1、從哪里來

程序集是由一個或者多個托管模塊以及 資源文件等共同組成的,c#編譯器(csc.exe)再把源碼編程成il代碼和元數據的時候,會進一步連同資源文件合并成程序集,

實際上就是個pe32文件,里面包含一個清單文件 和多個托管模塊和資源(如圖),另外程序集中還有一些自描述信息。

c#源碼的執行過程詳解

2、執行過程

編譯器生成好程序集以后,如果是可執行的程序集,會在main方法執行之前,window會預先讀取程序集的頭文件(pe32),如果是x86則開一個32位的進程,x64的就開一個64位的進程

然后在進程空間里面加載mscoree.dll的x86 或者x64版本或者arm版本,然后進程的主線程會調用mscoree.dll的一個方法,初始化clr,而clr會加載程序集exe,再調用其入口方法main。

3.main方法內部執行

在main執行之前,clr 會檢測出方法引用的所有類型,(console),然后在內存中分配對應數據類型的空間,這個地址里面包含著這個類型所有的方法聲名,每一項都對應著clr里面的一個未編檔函數(jitcompiler)

首次運行main方法的試試jitcompiler會被調用,在這個方法里面1,負責在方法的實現類型中(console)程序集元數據中查詢該方法的il方法 2,動態分配內存塊 3,把il編譯成本機cpu的指令,存儲到動態分配的空間里面

4,修改這個條目的地址,使它指向動態分配的地址 5.跳轉到內存塊中的本機代碼執行,這時候執行的就是il代碼的cpu機器碼

5.在次執行console.writeline的時候,就不會運行jitcompiler,直接運行機器碼

c#源碼的執行過程詳解

 

原文鏈接:https://www.cnblogs.com/wupo/p/9373564.html

延伸 · 閱讀

精彩推薦
  • C#深入解析C#中的交錯數組與隱式類型的數組

    深入解析C#中的交錯數組與隱式類型的數組

    這篇文章主要介紹了深入解析C#中的交錯數組與隱式類型的數組,隱式類型的數組通常與匿名類型以及對象初始值設定項和集合初始值設定項一起使用,需要的...

    C#教程網6172021-11-09
  • C#WPF 自定義雷達圖開發實例教程

    WPF 自定義雷達圖開發實例教程

    這篇文章主要介紹了WPF 自定義雷達圖開發實例教程,本文介紹的非常詳細,具有參考借鑒價值,需要的朋友可以參考下...

    WinterFish13112021-12-06
  • C#Unity3D實現虛擬按鈕控制人物移動效果

    Unity3D實現虛擬按鈕控制人物移動效果

    這篇文章主要為大家詳細介紹了Unity3D實現虛擬按鈕控制人物移動效果,文中示例代碼介紹的非常詳細,具有一定的參考價值,感興趣的小伙伴們可以參考一...

    shenqingyu060520232410972022-03-11
  • C#C#實現XML文件讀取

    C#實現XML文件讀取

    這篇文章主要為大家詳細介紹了C#實現XML文件讀取的相關代碼,具有一定的參考價值,感興趣的小伙伴們可以參考一下...

    Just_for_Myself6702022-02-22
  • C#C#裁剪,縮放,清晰度,水印處理操作示例

    C#裁剪,縮放,清晰度,水印處理操作示例

    這篇文章主要為大家詳細介紹了C#裁剪,縮放,清晰度,水印處理操作示例,具有一定的參考價值,感興趣的小伙伴們可以參考一下...

    吳 劍8332021-12-08
  • C#C#設計模式之Visitor訪問者模式解決長隆歡樂世界問題實例

    C#設計模式之Visitor訪問者模式解決長隆歡樂世界問題實例

    這篇文章主要介紹了C#設計模式之Visitor訪問者模式解決長隆歡樂世界問題,簡單描述了訪問者模式的定義并結合具體實例形式分析了C#使用訪問者模式解決長...

    GhostRider9502022-01-21
  • C#C# 實現對PPT文檔加密、解密及重置密碼的操作方法

    C# 實現對PPT文檔加密、解密及重置密碼的操作方法

    這篇文章主要介紹了C# 實現對PPT文檔加密、解密及重置密碼的操作方法,非常不錯,具有參考借鑒價值,需要的朋友可以參考下...

    E-iceblue5012022-02-12
  • C#C#通過KD樹進行距離最近點的查找

    C#通過KD樹進行距離最近點的查找

    這篇文章主要為大家詳細介紹了C#通過KD樹進行距離最近點的查找,具有一定的參考價值,感興趣的小伙伴們可以參考一下...

    帆帆帆6112022-01-22
主站蜘蛛池模板: japan护士性xxxⅹhd | 天天躁狠狠躁夜躁2020挡不住 | 久久久精品福利 | 国产视频在线一区 | 全网免费毛片 | 欧美3p激情一区二区三区猛视频 | 国产精品久久久久久久av三级 | 国产一级免费在线视频 | 国产自91精品一区二区 | 天天鲁在线视频免费观看 | 九色中文字幕 | 欧美性受xxxx人人本视频 | 怦然心动50免费完整版 | 黄色三级三级三级 | 免费毛片a线观看 | 欧美顶级毛片在线播放小说 | 最新日韩精品在线观看 | 国产精品一品二区三区四区18 | 日本一区二区不卡高清 | 一级电影在线观看 | 成人精品免费在线观看 | 国产一区二区三区视频观看 | 国产精品免费一区二区三区在线观看 | 黄视频免费在线观看 | 久久看视频 | 一色视频| 久久精品女人天堂av | 精品在线视频观看 | 亚洲精品午夜电影 | www.54271.com | 成人午夜视频免费看 | 久草在线视频新 | 把娇妻调教成暴露狂 | 精品国产一区二区三区久久久蜜月 | 成人在线免费视频观看 | 欧美成年人视频在线观看 | 最新欧美精品一区二区三区 | 久久6国产 | 欧美一a一片一级一片 | 成年人观看免费视频 | 欧美三日本三级少妇三级99观看视频 |