我已经阅读了源代码,并尝试在线进行研究,但我在完全理解它方面遇到了障碍.
完全是指,它与区域分配有何不同?
用于小内存的"区域"和用于模型等大型东西的"大块"吗?
谢谢
是的,hunk用于大型静态分配,例如纹理和几何,而区域用于较小(可能是易失性)的分配.
拥有这样的两个(或更多!)区域是游戏中常见的模式.有两个原因;
1)大多数游戏将预先分配运行所需的内存,然后从该空间执行自己的分配.这不仅比使用OS分配器更快,而且还可以阻止操作系统将纹理/几何/任何内容分页到磁盘.使用您自己的分配器还可以更轻松地创建代码来跟踪内存模式和泄漏.
2)在单独的区域中保持小的和/或动态分配可以避免分割用于更大分配的区域.碎片化是以前的小分配留下"漏洞"的地方,导致连续的自由空间量变得小于总的可用空间,并且是推动内存限制的游戏的祸根:)