windows虚拟内存的使用(三)

本文介绍了在Windows系统中如何使用VirtualAlloc进行大页面内存分配的步骤,包括设置用户权限、获取大页面尺寸以及使用MEM_LARGE_PAGES标志提交内存。同时,文章提到了大页面内存的一些限制,如不支持XP和2000系统、无法换页、可能引发内存碎片等。此外,还讨论了大页面在进程工作集中的统计问题和查看当前系统登录用户的方法。
摘要由CSDN通过智能技术生成

VirtualAlloc使用大页面的步骤和例子

使用大页面支持的步骤:

1 运行->secpol.msc

2 在本地策略->用户权限分配->锁定内存页。双击锁定内存页添加用户或组,默认将Administrators组添加进去,并注销重新登陆系统。

3 使用GetLargePageMinimum得到大页面的尺寸

4 使用MEM_LARGE_PAGES标志提交内存。

注意:运行该程序时需要进行设置。右键工程->属性->配置属性->链接器->清单文件->UAC执行级别(requireAdministrator (/level='requireAdministrator')),因为你为Administrator分配了锁定内存权限。

代码如下:

int _tmain(int argc, _TCHAR* argv[])
{
 srand((unsigned int)time(NULL));
 BYTE* pBuffer = NULL;
 //提升权限
// RaisePrivleges(SE_LOCK_MEMORY_NAME,TRUE);
 //1 得到GetLargePageMinimun得到大页面的尺寸
 SIZE_T szLargePage = GetLargePageMinimum(); 
 //2 保留空间
 pBuffer = (BYTE*)VirtualAlloc(0,64*szLargePage,MEM_RESERVE ,PAGE_READWRITE);
 //3 MEM_COMMIT | MEM_LARGE_PAGES
 VirtualAlloc(pBuffer,2*szLargePage,MEM_COMMIT|MEM_LARGE_PAGES,PAGE_READWRITE);
 //使用内存
 double* pdbArray = (doub
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值