一,緩存類型
概念:局部性。
時間局部性:當前用到的一個存儲器位置,不久的將來會被用到。
空間局部性:當前用到的一個存儲器位置,附近的位置會被用到。
那么在CPU的層面,這兩個局部性的特性就會被Cache執行,即將對擁有良好局部性的位置和指令進行緩存。來看一個具有時間局部性的例子:

這是一個簡單的求數組和的函數,這里的sum和i都具有時間局部性。那么它們就會被Cache管理,被CPU取值命中。
再看一個空間局部性的例子,我們將這個一維數組改為二維。

我們知道一個二維數組在內存里的排列是按行順序排列的,大概是這樣:
ay[0,0], ay[0,1], ay[0,2],ay[1,0], ay[1,1], ay[1,2]……
SumCache的寫法會完全命中ay在內存里的排布,而SumMiss的寫法則會Miss,二者的函數執行效率差距幾十倍。
所以ECS的架構,就是對緩存命中最大的提升,也是ECS性能倍增的原因。下一節稍微講一下Unity日后主推的面對數據棧技術編程即DOTS。