C:使用CPU快取
Marking some memory ranges as non-cacheable can improve performance, by avoiding caching of memory regions that are rarely re-accessed. This avoids the overhead of loading something into the cache, without having any reuse.
現在,我一直在閱讀和學習如何編寫具有更好的快取效能的程式(一般注意事項,通常不是特定於C),但是我不知道高階程式碼可以明確地與CPU快取行為進行互動.所以我的問題是,有沒有辦法從C文中引用我所引用的內容?
此外,我將非常感謝有關如何在C中提高快取效能的資源,即使它們不使用直接處理CPU快取的任何功能.例如,我想知道如果使用過多的間接級別(例如,一個指向容器的指標的容器)可能會損壞快取效能.
VirtualProtect(ptr, length, PAGE_NOCACHE, &oldFlags)
設定記憶體的快取行為以避免快取.
關於太多的厭惡:是的,如果您經常訪問不同的記憶體(通常會發生什麼),它們可能會損壞快取效能.重要的是要注意,如果你一直取消引用同一組例如8塊儲存器,只有第9塊不同,那麼通常不會有什麼區別,因為8塊將在第一次訪問之後快取.
http://stackoverflow.com/questions/9544094/c-working-with-the-cpu-cache
本站文章除註明轉載外,均為本站原創或編譯
轉載請明顯位置註明出處:C:使用CPU快取