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

首頁(yè) > 編程 > .NET > 正文

讓.Net 應(yīng)用程序突破2G的內(nèi)存訪問限制_.Net教程

2024-07-10 12:50:47
字體:
供稿:網(wǎng)友

推薦:解讀.NET 2.0中Hashtable快速查找的方法
一般來說我們都是用 Hashtable 的 ContainsKey 方法來查找 Hashtable 中是否存在某個(gè)鍵值然后讀取他,但是這個(gè)方法并不是效率最好的方法。比較好的方法是直接讀取鍵值然后判斷這個(gè)對(duì)象是否

32位Windows操作系統(tǒng)下單個(gè)進(jìn)程的用戶模式內(nèi)存訪問的限制是2G,如果在boot.ini中設(shè)置了/3G開關(guān),則最大為3G,超過3G將無(wú)法訪問。由于Hubble.net 項(xiàng)目是一個(gè)數(shù)據(jù)庫(kù)系統(tǒng),必須要考慮使用大內(nèi)存緩存數(shù)據(jù)的問題,于是最近對(duì)這個(gè)問題進(jìn)行了一些研究。其實(shí)這塊的技術(shù)是現(xiàn)成的,32位操作系統(tǒng)下只有通過AWE的方式來擴(kuò)展內(nèi)存。這塊的文章也很多,但很少有.net 下如何使用的實(shí)例,我做了一個(gè)類似MemoryStream的封裝,可以讓.Net程序員輕松操作AWE內(nèi)存,從而使其程序輕松突破2G內(nèi)存的限制。

在開始這篇文章之前,我們還是先來了解一下AWE.

AWE (Address Windowing Extensions)是 Windows 的內(nèi)存管理功能的一組擴(kuò)展,它使應(yīng)用程序能夠使用的內(nèi)存量超過通過標(biāo)準(zhǔn) 32 位尋址可使用的 2-3 GB 內(nèi)存。AWE 允許應(yīng)用程序獲取物理內(nèi)存,然后將非分頁(yè)內(nèi)存的視圖動(dòng)態(tài)映射到 32 位地址空間。雖然 32 位地址空間限制為 4 GB,但是非分頁(yè)內(nèi)存卻可以遠(yuǎn)遠(yuǎn)大于 4 GB。這使需要大量?jī)?nèi)存的應(yīng)用程序(如大型數(shù)據(jù)庫(kù)系統(tǒng))能使用的內(nèi)存量遠(yuǎn)遠(yuǎn)大于 32 位地址空間所支持的內(nèi)存量。

如上圖所示AWE 實(shí)際上就是將用戶模式下的32位內(nèi)存地址映射到用戶需要訪問的物理內(nèi)存上去。不同操作系統(tǒng)運(yùn)行被映射的物理內(nèi)存大小是不一樣的。

Vista, XP 和 Windows 2003 標(biāo)準(zhǔn)版 最多可以映射 4G 內(nèi)存。

Windows 2003 企業(yè)版的限制是32G (要使用超過4G的內(nèi)存必須打開 /PAE 開關(guān))

Windows 2003 數(shù)據(jù)中心版本限制是64G (要使用超過4G的內(nèi)存必須打開 /PAE 開關(guān))

由于被映射的物理內(nèi)存為不分頁(yè)內(nèi)存,無(wú)法進(jìn)行頁(yè)保護(hù),為了保證內(nèi)存使用的安全,防止其他進(jìn)程越界訪問,AWE 在映射這些內(nèi)存之前必須將這些內(nèi)存鎖定,即只有鎖定這塊內(nèi)存的進(jìn)程可以訪問這塊內(nèi)存,其它進(jìn)程無(wú)法訪問。這里就產(chǎn)生了一個(gè)有趣的現(xiàn)象,我們可以在windows 下像實(shí)時(shí)操作系統(tǒng)那樣操作物理內(nèi)存,而不用擔(dān)心操作系統(tǒng)進(jìn)行頁(yè)交換時(shí)對(duì)系統(tǒng)實(shí)時(shí)性的影響。雖然不采用AWE,也可以通過VirtualLock API函數(shù)來鎖定物理內(nèi)存,但這個(gè)函數(shù)在一個(gè)進(jìn)程中最多可以鎖定30個(gè)頁(yè)面,以一個(gè)頁(yè)大小4096來計(jì)算,最多可以鎖定30*4094字節(jié)的內(nèi)存。當(dāng)然這是默認(rèn)設(shè)置,你也可以通過調(diào)整工作 WorkingSet 來調(diào)整。看來AWE對(duì)于那些實(shí)時(shí)性比較高的應(yīng)用,比如游戲,動(dòng)畫,通訊等還確實(shí)是一個(gè)福音。

分享:解讀26個(gè)ASP.Net開發(fā)新手的常見問題
一位ASP.net初學(xué)者學(xué)習(xí)過程中整理的備忘錄,包括“打開新的窗口并傳送參數(shù),為按鈕添加對(duì)話框,刪除表格選定記錄,刪除表格記錄警告”等等常見問題的解決方法。1. 打開新的窗

共4頁(yè)上一頁(yè)1234下一頁(yè)
發(fā)表評(píng)論 共有條評(píng)論
用戶名: 密碼:
驗(yàn)證碼: 匿名發(fā)表
主站蜘蛛池模板: 剑阁县| 灯塔市| 西华县| 宣汉县| 利辛县| 徐汇区| 南和县| 丰原市| 那坡县| 闸北区| 香河县| 延吉市| 宁乡县| 项城市| 屯门区| 岑溪市| 京山县| 淳安县| 南部县| 石屏县| 邵武市| 江永县| 军事| 兰考县| 西吉县| 普陀区| 兴化市| 磐安县| 茶陵县| 汕尾市| 廉江市| 思南县| 长寿区| 沂源县| 太原市| 临武县| 腾冲县| 台南县| 武威市| 台南县| 腾冲县|