日韩天天综合网_野战两个奶头被亲到高潮_亚洲日韩欧美精品综合_av女人天堂污污污_视频一区**字幕无弹窗_国产亚洲欧美小视频_国内性爱精品在线免费视频_国产一级电影在线播放_日韩欧美内地福利_亚洲一二三不卡片区

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

編輯Tag賺U幣
教程Tag:暫無Tag,歡迎添加,賺取U幣!

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

1、為當(dāng)前進(jìn)程申請(qǐng)鎖定內(nèi)存的權(quán)限(注意 調(diào)用進(jìn)程的帳號(hào)必須具備鎖定內(nèi)存的權(quán)限,否則這一步會(huì)失�。�

2、就是需要申請(qǐng)的頁面數(shù)量

3、通過 AllocateUserPhysicalPages API 申請(qǐng)AWE內(nèi)存

以下為引用的內(nèi)容:

public AweStream(UInt32 capacity)
{
unsafe
{
// Enable the privilege of lock memory.

lock (_SetLockPagesPrivilegeLockObj)
{
if (!_SetLockPagesPrivilegeOk)
{
LoggedSetLockPagesPrivilege.SetLockPagesPrivilege(System.Diagnostics.Process.GetCurrentProcess(), true);
_SetLockPagesPrivilegeOk = true;
}
}

General.SYSTEM_INFO sysInfo;
General.GetSystemInfo(out sysInfo); // fill the system information structure

_PageSize = sysInfo.dwPageSize;
if ((capacity % _PageSize) != 0)
{
_NumberOfPages = capacity / _PageSize 1;
}
else
{
_NumberOfPages = capacity / _PageSize;
}

_PFNArraySize = (UInt32)(_NumberOfPages * sizeof(UInt64*)); // memory to request for PFN array

_PFNArray = Marshal.AllocHGlobal((int)_PFNArraySize);

UInt32 numberOfPagesInitial = _NumberOfPages;

if (!AweApi.AllocateUserPhysicalPages(System.Diagnostics.Process.GetCurrentProcess().Handle,
ref _NumberOfPages, _PFNArray))
{
Dispose();
throw new AweStreamException("Cannot allocate physical pages", AweStreamException.Reason.CannotAllocatePhysicalPages);
}

_AweAllocated = true;

if (numberOfPagesInitial != _NumberOfPages)
{
Dispose();
throw new AweStreamException(string.Format("Allocated only {0} pages.", _NumberOfPages),
AweStreamException.Reason.AweMemoryNotEnough);
}

_Capacity = _PageSize * _NumberOfPages;
}

}


AWE內(nèi)存申請(qǐng)完畢后并不能被立即訪問到,我們必須將其映射到32位內(nèi)存地址中才可以訪問。

下面是內(nèi)存映射的代碼:

也很簡(jiǎn)單:

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

來源:模板無憂//所屬分類:.Net教程/更新時(shí)間:2008-12-05
相關(guān).Net教程