国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 開發(fā) > 綜合 > 正文

JIT編譯

2024-07-21 02:17:19
字體:
供稿:網(wǎng)友
在msil執(zhí)行前,必須通過.net框架的jit編譯器編譯成本地代碼,
這個本地代碼是基于特定cpu的,而且必須和jit運行在同一套計算機(jī)
體系結(jié)構(gòu)上。由于運行時對于其運行的每一個cpu架構(gòu)都提供了一個
jit編譯器,開發(fā)人員可以編寫一套可以通過jit編譯從而運行在不同
架構(gòu)的計算機(jī)上的msil代碼(如果你的受控代碼調(diào)用了特定平臺的
api或者類庫,那么你的代碼就只能在特定的計算機(jī)上執(zhí)行了)。
    jit編譯的一個想法是基于認(rèn)識到一些代碼可能在執(zhí)行過程中從
來都沒有被調(diào)用過這樣一個事實,因而與其花費時間和內(nèi)存將pe文件
中的msil全部轉(zhuǎn)換為本地代碼,不如在執(zhí)行過程中根據(jù)需要編譯,對
于已經(jīng)編譯好的則存放起來,以供下次調(diào)用(這樣就不需要重復(fù)編譯
了)。當(dāng)類型加載的時候,加載器為類型的每一個方法都創(chuàng)建一個存
根,并連接到其上。在最初的調(diào)用中,存根把控制權(quán)轉(zhuǎn)到j(luò)it編譯器
,由jit編譯器將這個方法的msil代碼轉(zhuǎn)換為本地代碼,并且將存根
指向本地代碼的直接執(zhí)行地址。對于已經(jīng)經(jīng)過jit編譯的方法,其后
續(xù)調(diào)用將直接調(diào)用已經(jīng)產(chǎn)生的本地代碼,從而減少了jit編譯和代碼
執(zhí)行的時間。
    作為編譯msil代碼到本地代碼過程的一部分,代碼必須經(jīng)過一個
驗證階段(除非管理員設(shè)置了安全規(guī)則,允許代碼不需要驗證)。驗
證將檢查msil和元數(shù)據(jù)以確認(rèn)代碼是否類型安全的,也就是說這段代
碼是否只訪問其有權(quán)訪問的存儲區(qū)域。類型安全可以確保對象之間是
安全隔離的,從而避免無意的或者惡意的破壞,同時它也保證了代碼
之上的安全規(guī)則是能夠可靠執(zhí)行的。
    運行時可以依靠以下幾個狀態(tài)為真來驗證代碼的類型安全:
      一個類型的引用對于被引用的類型來說是直接兼容的
      在一個對象上,只有適當(dāng)定義的操作才能夠被調(diào)用
      標(biāo)志符和它們所聲明的一致
    在驗證階段,msil將被檢查已確認(rèn)代碼只能通過適當(dāng)定義的類型
去訪問內(nèi)存和調(diào)用方法。比如說,在內(nèi)存定位允許越界的情況下,代
碼將不允許對象的字段能夠被訪問。另外,驗證也將檢查代碼已確認(rèn)
msil是否是正確的產(chǎn)生的,因為不正確的msil代碼會導(dǎo)致對類型安全
規(guī)則的違反。驗證階段將通過一套良好定義的類型安全代碼,而且也
只有類型安全的代碼才能夠得以通過。另外,要說明的是,由于驗證
階段的限制,可能會導(dǎo)致一些類型安全的代碼無法通過驗證,同時一
些語言也可能不會產(chǎn)生可驗證的類型安全代碼
發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 萨嘎县| 蓬莱市| 肇东市| 原平市| 赤水市| 望城县| 阜新市| 应城市| 荃湾区| 拉萨市| 扎囊县| 中山市| 内乡县| 北川| 贵定县| 绥江县| 介休市| 通渭县| 平原县| 合水县| 买车| 天长市| 东平县| 徐闻县| 霍城县| 安龙县| 玛多县| 出国| 巨鹿县| 台东市| 库尔勒市| 开远市| 林州市| 洛宁县| 宕昌县| 衡南县| 马关县| 德令哈市| 武隆县| 河曲县| 临夏市|