假設我們有一個類A
,並且我有一個指向A
對象的指針數組,當我遍歷數組中的每個元素時,我可能會導致現金未命中,因爲每個對象都在內存中的不同位置,並且它們不對齊在同一個程序塊中,因爲它是一個指向對象而不是實際對象的指針數組。確實使用自定義塊分配器來分配放入數組中的指針解決現金丟失問題?
我想通過創建一個自定義分配器來解決這個問題,我用它來分配這些對象並將它們的指針放在數組中。分配器確保所有對象在內存中總是彼此相鄰,並在一個塊中對齊。迭代數組時,這是否解決了現金丟失問題?
更多細節:
我將創建一個自定義的分配器,該分配器將ALLOC的內存足夠大,以處理所有的對象塊,後來當我ALLOC一個對象,這個分配器將選擇塊內的自由空間每次嘗試將所有對象放在一個接一個的位置,這樣它們立即被加載到現金存儲器並且會導致更少的現金缺失
什麼?我的意思是你的建議解決方案。 – gsamaras
我將創建一個自定義分配器,此分配器將分配一塊足夠大的內存來處理所有對象,稍後當我分配一個對象時,此分配器將選擇該塊內的空閒空間,每次嘗試使所有對象放置一個下一個到另一個,這樣他們立即被加載到現金記憶,並會導致更少的現金錯過 –