您好,登錄后才能下訂單哦!
本篇內(nèi)容介紹了“CPU密集型和IO密集型是什么”的有關(guān)知識(shí),在實(shí)際案例的操作過(guò)程中,不少人都會(huì)遇到這樣的困境,接下來(lái)就讓小編帶領(lǐng)大家學(xué)習(xí)一下如何處理這些情況吧!希望大家仔細(xì)閱讀,能夠?qū)W有所成!
CPU密集型也叫計(jì)算密集型,指的是系統(tǒng)的硬盤(pán)、內(nèi)存性能相對(duì)CPU要好很多,此時(shí),系統(tǒng)運(yùn)作大部分的狀況是CPU Loading 100%,CPU要讀/寫(xiě)I/O(硬盤(pán)/內(nèi)存),I/O在很短的時(shí)間就可以完成,而CPU還有許多運(yùn)算要處理,CPU Loading很高。
在多重程序系統(tǒng)中,大部份時(shí)間用來(lái)做計(jì)算、邏輯判斷等CPU動(dòng)作的程序稱之CPU bound。例如一個(gè)計(jì)算圓周率至小數(shù)點(diǎn)一千位以下的程序,在執(zhí)行的過(guò)程當(dāng)中絕大部份時(shí)間用在三角函數(shù)和開(kāi)根號(hào)的計(jì)算,便是屬于CPU bound的程序。
CPU bound的程序一般而言CPU占用率相當(dāng)高。這可能是因?yàn)槿蝿?wù)本身不太需要訪問(wèn)I/O設(shè)備,也可能是因?yàn)槌绦蚴嵌嗑€程實(shí)現(xiàn)因此屏蔽掉了等待I/O的時(shí)間。
IO密集型指的是系統(tǒng)的CPU性能相對(duì)硬盤(pán)、內(nèi)存要好很多,此時(shí),系統(tǒng)運(yùn)作,大部分的狀況是CPU在等I/O (硬盤(pán)/內(nèi)存) 的讀/寫(xiě)操作,此時(shí)CPU Loading并不高。
I/O bound的程序一般在達(dá)到性能極限時(shí),CPU占用率仍然較低。這可能是因?yàn)槿蝿?wù)本身需要大量I/O操作,而pipeline做得不是很好,沒(méi)有充分利用處理器能力。
我們可以把任務(wù)分為計(jì)算密集型和IO密集型。
計(jì)算密集型任務(wù)的特點(diǎn)是要進(jìn)行大量的計(jì)算,消耗CPU資源,比如計(jì)算圓周率、對(duì)視頻進(jìn)行高清解碼等等,全靠CPU的運(yùn)算能力。這種計(jì)算密集型任務(wù)雖然也可以用多任務(wù)完成,但是任務(wù)越多,花在任務(wù)切換的時(shí)間就越多,CPU執(zhí)行任務(wù)的效率就越低,所以,要最高效地利用CPU,計(jì)算密集型任務(wù)同時(shí)進(jìn)行的數(shù)量應(yīng)當(dāng)?shù)扔贑PU的核心數(shù)。
計(jì)算密集型任務(wù)由于主要消耗CPU資源,因此,代碼運(yùn)行效率至關(guān)重要。Python這樣的腳本語(yǔ)言運(yùn)行效率很低,完全不適合計(jì)算密集型任務(wù)。對(duì)于計(jì)算密集型任務(wù),最好用C語(yǔ)言編寫(xiě)。
第二種任務(wù)的類型是IO密集型,涉及到網(wǎng)絡(luò)、磁盤(pán)IO的任務(wù)都是IO密集型任務(wù),這類任務(wù)的特點(diǎn)是CPU消耗很少,任務(wù)的大部分時(shí)間都在等待IO操作完成(因?yàn)镮O的速度遠(yuǎn)遠(yuǎn)低于CPU和內(nèi)存的速度)。對(duì)于IO密集型任務(wù),任務(wù)越多,CPU效率越高,但也有一個(gè)限度。常見(jiàn)的大部分任務(wù)都是IO密集型任務(wù),比如Web應(yīng)用。
IO密集型任務(wù)執(zhí)行期間,99%的時(shí)間都花在IO上,花在CPU上的時(shí)間很少,因此,用運(yùn)行速度極快的C語(yǔ)言替換用Python這樣運(yùn)行速度極低的腳本語(yǔ)言,完全無(wú)法提升運(yùn)行效率。對(duì)于IO密集型任務(wù),最合適的語(yǔ)言就是開(kāi)發(fā)效率最高(代碼量最少)的語(yǔ)言,腳本語(yǔ)言是首選,C語(yǔ)言最差。
“CPU密集型和IO密集型是什么”的內(nèi)容就介紹到這里了,感謝大家的閱讀。如果想了解更多行業(yè)相關(guān)的知識(shí)可以關(guān)注億速云網(wǎng)站,小編將為大家輸出更多高質(zhì)量的實(shí)用文章!
免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長(zhǎng)郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。