cacheline相關優化手段

2022-06-20 17:39:09 字數 768 閱讀 6323

1. cacheline對齊

避免讀取的資料跨越2個cacheline,結構體可以cacheline對齊,連續的陣列可以嘗試首位址cacheline對齊,但可能造成浪費。

2. 分支**

可以使用likely/unlikely這樣的巨集,提高cacheline命中的概率。

存在多個條件判斷時,根據機率調整每個分支的順序。

3. 延遲計算

最近用不到的變數不要進行初始化,和程式設計規範可能相背。

4. 暫存器引數

盡量使用暫存器作為函式引數。

5. 相關**相鄰

相關的**或檔案盡量相鄰,相關的**編譯到一起,提高cache的命中率。

6. **冗餘

減少冗餘**與死**。

7. 讀寫分離

兩個無關的變數,乙個讀,乙個寫,而這 兩個變數在乙個cache line裡面。那麼寫會導致cache line失效。

8. 資料預取

資料預取的依據是預取的資料 馬上會用到,這個應該符合空間區域性性(spatial locality),但是如何知道預取的資料會被用到,這個 要看上下文的關係。一般來說,資料預取在迴圈裡面用的比較多,因為迴圈是最符合空間區域性性的**。

可以使用__builtin_prefetch()等函式。

sql常用優化手段

常見優化手段 where及order by的列建索引 避免在 where 子句中使用 或 操作符,否則將引擎放棄使用索引而進行全表掃瞄。避免在 where 子句中對字段進行 null 值判斷,否則將導致引擎放棄使用索引而進行全表掃瞄,可以在字段上設定預設值0 避免在 where 子句中使用 or 來...

MySQL 常用優化手段

表設計盡量小的字段 資料庫表越小,執行查詢越快 字段盡量設定not null 執行查詢不用比較null值 部分文字欄位如性別,省份使用enum 數值處理比文字塊 事物以begin 關鍵字開始,commit關鍵字結束。在使用者多時,事務的資料庫鎖定會造成嚴重延遲,所以要鎖定表 lock table i...

web前端優化手段

web前端優化手段有很多,同種的優化方式或許在不同的網路協議會南轅北轍,下面就自己結合工作經驗和學習總結的一些手段總結 3 cookie free 將資源的站點都重定向到非頁面站點,如 頁面都是 100bt.com,將資源站點都放在resource.a0bi.com站點。4 多站點放置資源,繞開瀏覽...