使用4kb分配池有什么好处吗?

时间:2018-04-07 00:03:39

标签: c optimization memory-management allocation cpu-cache

直到最近,我认为CPU缓存(至少在某些级别)的大小为4kb,因此将我的分配分组为4kb平板似乎是个好主意,以改善缓存局部性。

但是,阅读Line size of L1 and L2 caches我看到所有级别的CPU缓存行都是64字节,而不是4kb。这是否意味着我的4kb平板是无用的,我应该回到使用常规malloc?

谢谢!

1 个答案:

答案 0 :(得分:2)

4KB确实具有重要意义:它是您操作系统的常见页面大小,因此也适用于TLB中的条目。

即使您只使用64页的页面,内存映射文件,交换空间,内核I / O(写入文件或套接字)也将对此页面大小进行操作。

出于这个原因,使用页面大小的池仍然有些优势。