Udemy Course Multithreading, Concurrency & Performance 10
接著在前一節的程式內製作multi-thread處理的程式方法
依據高度將圖片分拆成Threads數量來處理顏色RGB轉換並輸出一樣結果
建立Multi-Threads 處理Method:
接下來就可以比較跟前一節做的singleThread的Performance差異
在main裡面擷取系統時間來看多久跑完:
先跑singleThread的來看看時間多少毫秒:
接著改寫multi-thread執行但是只給單一個Thread數處理
稍微多了一點再做thread拆分合併的邏輯處理
接著再改成給拆分成2個threads處理
3個:
4個:
並且確認圖片還是正常:
以下是講師的數據圖(物理4核加上8個虛擬核心數)
如上圖所以thread分成跟物理核心數一致都是4時,就可以達到最高效率
接著在拆分到包含虛擬核心數已經沒那麼有感的提高效能了
這其中也包含其他應用或背景程式執行可能也會占據部分CPU等效能
在大於8就已經沒有額外的效能變化了
並且在越大張的圖,6 threads與single-Thread處理速度比值如下
故越大張圖多Threads處理效率越快!
小張圖就用single-thread處理反而比較快!