caching着色在Linux内核的slab内存pipe理上

我最近读了关于slab系统的caching着色,并不明白。 为什么在不同的板上添加各种偏移量的caching着色可以提高性能?

我最初的猜测是:具有caching偏移的slab分配器,尝试将第一个slab对象放在不同caching颜色的内存中。 如果一个客户端从这些平板分配N个对象,它将获得N个caching颜色的对象。

我的猜测是正确的吗?有人可以给我更多的提示吗? 非常感谢,

我会建议通过“ 了解Linux虚拟内存 ”一书 – slab分配器章节。 正如它引用,

slab分配器的最终任务是使用最佳硬件缓存。 如果在将物体打包成板之后剩余空间,则使用剩余的空间对板进行着色。 板坯着色是一种试图让不同板上的对象在缓存中使用不同行的方案。 通过在slab中的不同起始偏移处放置对象,对象可能会在CPU高速缓存中使用不同的行,这有助于确保来自同一个slab高速缓存的对象不会相互冲刷。

我认为这回答你的怀疑。