Assembly_On_Win32
文章平均质量分 63
__keke
苦苦思索不得其解,竟是一副呆滞模样!
展开
-
内存管理杂谈
虚拟内存管理函数(如VirtualAlloc()之类)所分配的内存区域一般都是大块的。它所分配的内在区域有如下限制: 1 对于用户程序,区域的基址会被对齐到系统的分配粒度(allocation granularity,64KB)的整数倍。对于内核程序没有这个限制,但它也要将区域的基地址对齐到页面大小(x86上为4KB,IA-64为8KB)。对于用户程序所分配的区域其实也是页面大小的整原创 2009-10-12 11:50:00 · 544 阅读 · 0 评论 -
不可增长堆中的0x7FFF8大小限制
Finally,还是找到了这个让人"pleasure and pain"的问题的答案! 当在程序中使用HeapCreate()函数来创建私有堆的时候,其中有个诡异的参数——dwMaximumSize,当它指定为0时(我们很高兴),它为可增长堆(growable heap),当它指定为正整数时(-_-),它为不可增长堆(non-growable heap)。 查看MSDN中关于原创 2009-10-13 10:49:00 · 1263 阅读 · 0 评论 -
Frond End Allocator(前端分配器)
前端分配器(Front End Allocator)是后端分配器(Back End Allocator)的一个抽象优化层。 通过允许有不同类型的前端分配器,有着不同内存需求的应用程序可以选择合适的分配器。 例如,如果一个应用程序会存在频繁的内存分配,那么它可以选择使用低碎片(Low Fragmentation)前端分配器来避免堆碎片。在Windows中有两个不同的前端分配器可供使用:翻译 2009-10-12 21:29:00 · 1300 阅读 · 0 评论