我最近读到有关slab系统的缓存着色的内容,但不明白。
为什么为不同slab中的对象添加不同偏移量的缓存着色可以提高性能?
我最初的猜测是:
具有缓存偏移量的slab分配器,尝试将slab的第一个对象放在不同缓存颜色的内存中。如果客户端从这些slab中分配N个对象,它将获得具有N个缓存颜色的N个对象。
我的猜测是否正确,或者有人可以给我更多提示吗?
多谢,
我建议通过“了解Linux虚拟内存 https://www.kernel.org/doc/gorman/pdf/understand.pdf“书 - 平板分配器章节。正如它所引用的那样,
板分配器的最终任务是优化硬件缓存的使用。如果将对象打包到slab中后还有剩余空间,则剩余空间将用于为slab着色。板着色是一种尝试让不同板中的对象使用缓存中不同线的方案。通过将对象放置在slab内不同的起始偏移处,对象可能会使用CPU缓存中的不同行,这有助于确保来自同一slab缓存的对象不太可能相互刷新。
我想这回答了你的疑问。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)