CR的代码文本

all for learning about the world
  订阅 订阅  :: 管理

分配粒度不是坏名词

Posted on 2012-06-25 12:18  mumuliang  阅读(402)  评论(0编辑  收藏  举报

"系统分配内存时,首地址必须是分配粒度(64K)的整数倍。"

还以为这里的粒度是翻译不到位,翻了原文,allocation granularity,确确实实是粒度,没错。

在嗷酱和嘟酱的帮助下发现原来是酱紫的:

http://blogs.msdn.com/b/oldnewthing/archive/2003/10/08/55239.aspx

 

 

LPVOID

    WINAPI

    VirtualAlloc(

    LPVOID lpAddress,

    SIZE_T dwSize,

    DWORD flAllocationType,    // MEM_RESERVE,预订区域而不是调拨物理存储器

    DWORD flProtect

    );

// 从高地址预订内存地址,可以避免可能会引起的内存碎片。

// 如果想要尽可能从高地址预订区域,必须

// lpAddress = NULL

// flAllocationType= MEM_RESERVE|MEM_TOP_DOWN

 

 

SIZE_T GetLargePageMinimum(); // 获得大页面分配粒度

 

大页面会得到更好的性能是因为Windows认为MEM_LARGE_PAGE标志分配得到的内存是不可换页的unpagable.