架構級優化:
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...