更新時(shí)間:2023年11月07日13時(shí)54分 來(lái)源:傳智教育 瀏覽次數(shù):
使用C#進(jìn)行程序開(kāi)發(fā)時(shí),不僅要了解C#的特點(diǎn),還需要了解C#程序的運(yùn)行機(jī)制。下面通過(guò)一張圖描述C#程序在NET Framework中編譯和運(yùn)行的過(guò)程,如圖所示。
圖中,程序的運(yùn)行過(guò)程分為兩個(gè)時(shí)期,分別是編譯期和運(yùn)行期。在編譯期,CLR對(duì)C#代碼進(jìn)行第一次編譯,將編寫(xiě)的代碼編譯成dll文件或.exe文件,此時(shí)代碼被編譯為通用中間語(yǔ)言(Common lntemmediate Language,CIL)。在運(yùn)行期,CLR會(huì)針對(duì)目前特定的硬件環(huán)境使用即時(shí)編譯(Just-in-Time,JIT),也就是將CIL.編譯成本機(jī)代碼并執(zhí)行。需要說(shuō)明的是,在運(yùn)行期,CLR將編譯后的代碼放人一個(gè)緩沖區(qū)中,當(dāng)再次運(yùn)行程序,如果使用相同的代碼時(shí),會(huì)直接從緩沖區(qū)調(diào)用編譯后的代碼。也就是說(shuō),相同的代碼只會(huì)編譯一次,從而提高C#程序的運(yùn)行速度。
一個(gè)datanode宕機(jī),怎么將一個(gè)流程恢復(fù)?
2023-10-31北京培訓(xùn)Python,培訓(xùn)費(fèi)大概多少錢(qián)?
2023-10-30block塊副本放置有哪些策略?
2023-10-30MySQL主鍵約束:?jiǎn)瘟泻投嗔兄麈I的添加刪除方法【大數(shù)據(jù)技術(shù)文章】
2023-10-27Kafka到底有沒(méi)有內(nèi)部的topic?
2023-10-27薪資暴漲!黑馬Python+大數(shù)據(jù)開(kāi)發(fā)學(xué)科新項(xiàng)目揭秘!
2023-10-27北京校區(qū)