從DPDK透視軟體優化 C

2021-09-16 12:43:49 字數 545 閱讀 8056

架構級優化:

1、優化io:使用uio + mpool+mbuf等記憶體「零操作」技術;

2、簡化層次:精簡協議處理流程,壓縮處理路徑;

3、就近原則:模組解耦化前提是資料區域性化,本地化;

4、事件驅動+輪詢互補:低cpu的事件驅動模型+高優先順序的輪詢提公升io吞吐能力;

5、mpool:中斷同步操作,提公升併發效率。

系統級優化:

1、減少頁交換:按需加大頁表;

2、編譯級優化:提前常量化;

3、併發排程:向量程式設計(簡化為批量排程)。

**級優化:

1、彙編化:高頻**彙編化;

2、指令cache:like條件,cpu變數、記憶體對齊。

上述每乙個改動都涉及模組較大的架構調整,需要根據具備情況進行更精細的劃分,找到當前最大的效能瓶頸,如區分當前模組在io、cpu、記憶體、中斷的佔比情況,同時分析模組間耦合情況(通訊頻率、通訊規模、通訊方式)。

架構級優化屬於模組的自身優化形為,適用於大數於os排程模型,可移植性強,系統級優化和**級優化與外設cpu及記憶體強相關,可移植性較弱。

凸優化1 透視函式

在學習凸優化的過程中,接觸到了透視函式,它的定義是這樣的 假設有乙個n 1維向量,將它的前面n個維度除以最後乙個維度,則得到了乙個n維向量。得到的這個n維向量就是原來的n 1維向量的透視後的結果。透視函式有這樣乙個重要的性質 乙個n 1維空間的凸集經過透視函式的計算過後得到的n維空間集合也是凸的。我...

從資訊角度透視SOA設計

任何成功的soa都需要建立乙個通用的容易訪問的業務術語表,業務術語表定義與過程 服務和資料相關的術語。soa實施人員在整理組織中公認的業務語言和縮寫詞時,常常發現術語存在不一致的地方。如果客戶 渠道 收入等關鍵術語的定義不一致,就不可能實現與這些術語相關的服務。如果相關人員對服務的引數 即服務獲得的...

DPDK中的memcpy效能優化及思考

引 記憶體拷貝 memcpy 這個操作看似簡單,但長期以來存在很多關於其優化的討論,各種程式語言庫也都有對應實現,而對於memcpy效能評估測試的討論就更多了。那麼如下的memcpy實現到底有什麼問題?void memcpy void dst,const void src,size t n 12 3...