今天在處理檔案時遇到了乙個比較怪異的問題,對資料進行處理時開啟乙個固定5個執行緒的執行緒池發現執行速度比乙個執行緒執行的速度要慢(測試機配置32g運存,128g固態,i7處理器)。下面對專案背景以及測試結果進行分析。
背景:專案是從133個檔案中(共擁有一億三千萬條記錄,每個檔案100w條資料)挑選出符合條件的一百萬條資料寫入另乙個檔案。
剛開機時:
在電腦剛開機時,硬碟使用率在百分之一左右,cpu使用率7%,記憶體消耗4g。
開啟單執行緒時:
硬碟佔用率為百分之70,處理10個檔案所用時間為1分1秒:
當開啟五個固定執行緒的執行緒池時:
硬碟佔用率達到百分之百,處理10個檔案所用時間為2分58秒
當利用非同步io來處理檔案時的速度和單執行緒的情況一樣,這裡就不在重複效果展示。
計算密集型 IO密集型 資料密集型
2 計算密集型任務雖然也可以用多工完成,但是任務越多,花在任務切換的時間就越多,cpu執行任務的效率就越低,所以,要最高效地利用cpu,計算密集型任務同時進行的數量應當等於cpu的核心數。3 計算密集型任務由於主要消耗cpu資源,因此,執行效率至關重要。python這樣的指令碼語言執行效率很低,完全...
CPU 密集型 計算密集型,IO密集型
1 cpu 密集型 計算密集型 計算密集型,顧名思義就是應用需要非常多的cpu計算資源,在多核cpu時代,我們要讓每乙個cpu核心都參與計算,將cpu的效能充分利用起來,這樣才算是沒有浪費伺服器配置,如果在非常好的伺服器配置上還執行著單執行緒程式那將是多麼重大的浪費。對於計算密集型的應用,完全是靠c...
計算密集型和IO密集型
什麼是計算密集型 計算密集型就是計算 邏輯判斷量非常大而且集中的型別,因為主要占用cpu資源所以又叫cpu密集型,而且當計算任務數等於cpu核心數的時候,是cpu執行效率最高的時候。特點 消耗cpu 什麼是io密集型 io密集型就是磁碟的讀取資料和輸出資料非常大的時候就是屬於io密集型 由於io操作...