2013-02-22 54 views
2

我最近讀到有關slab系統的緩存着色並且不理解。 爲什麼在不同平板上添加各種偏移量的緩存着色可以提高性能?在Linux內核中對slab內存管理進行緩存着色

我的初步猜測是: 具有緩存偏移的slab分配器,嘗試將第一個slab對象放在不同緩存顏色的內存中。如果客戶端從這些平板分配N個對象,則它將獲得N個緩存顏色爲N的對象。

我的猜測是否正確或有人能給我更多的提示? 非常感謝,

回答

3

我建議通過「Understanding Linux virtual memory」書 - 板分配器章節。正如它所引用的,

slab分配器的最終任務是使用最佳硬件緩存。如果在將物體打包成板之後剩餘空間,則使用剩餘空間對板坯着色。板坯着色是一種試圖讓不同平板上的對象在高速緩存中使用不同行的方案。通過將對象放置在板內不同的起始偏移處,對象可能會在CPU高速緩存中使用不同的線,這有助於確保來自同一板塊高速緩存的對象不會相互沖刷。

我認爲這回答你的疑問。