併發:單機多 CPU、單CPU多 Core、單 core 超線程 IO密集型應用: 多進程->多線程->異步->協程?? CPU密集型應用:多進程-->多線程 ?? 方法:算法
減小網絡重連(長鏈接) 下降鏈接數(鏈接池) 減小線程切換(線程池) 減小內存分配和釋放(內存池) 減小耗時的操做和運算 (memset,浮點運算,除法,指數,對數運算,慎用stl) 在線轉離線 (離線生成詞典,如推薦)編程
多線程無鎖算法:無鎖共享數據、無鎖數據結構、Copy on Write Hash 衝突:桶如何分配、如何減小 hash 衝突 合理使用鎖:鎖的時間儘量短、下降衝突機率、避免死鎖網絡
隨機寫--》順序寫 順序寫磁盤效率比隨機寫內存還要高,這是Kafka高 吞吐率的一個很重要的保證數據結構
下降數據傳輸量: 數據壓縮:CPU 與網絡 IO 權衡 , 減小交互次數 打包訪問 減小跨機器 IO多線程
均衡 cache併發