C 有人能解释地震吗;s';大块头;?

C 有人能解释地震吗;s';大块头;?,c,memory,C,Memory,我已经通读了源代码,并试图在网上进行研究,但在完全理解它方面,我遇到了困难。 我的意思是,它与分区分配有何不同 “区域”用于小内存,而“大块”用于模型等更大的东西吗 感谢是的,hunk用于大型静态分配,如纹理和几何体,而zone用于较小的(可能是不稳定的)分配 有两个(或更多)这样的区域是游戏中常见的模式。原因有二, 1) 大多数游戏将预先分配运行所需的内存,然后从该空间执行自己的分配。这不仅可以比使用OS分配器更快,还可以阻止OS将纹理/几何体/任何内容分页到磁盘。使用您自己的分配器还可以更容

我已经通读了源代码,并试图在网上进行研究,但在完全理解它方面,我遇到了困难。
我的意思是,它与分区分配有何不同

“区域”用于小内存,而“大块”用于模型等更大的东西吗


感谢

是的,hunk用于大型静态分配,如纹理和几何体,而zone用于较小的(可能是不稳定的)分配

有两个(或更多)这样的区域是游戏中常见的模式。原因有二,

1) 大多数游戏将预先分配运行所需的内存,然后从该空间执行自己的分配。这不仅可以比使用OS分配器更快,还可以阻止OS将纹理/几何体/任何内容分页到磁盘。使用您自己的分配器还可以更容易地创建代码来跟踪内存模式和泄漏


2) 将小型和/或动态分配保留在单独的区域中,可以避免分割用于大型分配的区域。碎片化是以前的小规模分配留下的“漏洞”,导致连续可用空间的数量小于总可用空间,并且是正在突破内存限制的游戏的祸根:)

John正忙于发射火箭()。你能发布一两个有关hunk vs.zone的代码示例来刷新记忆吗?