CPU密集型和I/O密集型區別


CPU密集型

一些進程絕大多數時間在計算上,稱為計算密集型(CPU密集型)computer-bound。一些大量循環的代碼(例如:圖片處理、視頻編碼、人工智能等)就是CPU密集型。

I/O密集型

有一些進程則在input 和output上花費了大多時間,稱為I/O密集型,I/O-bound。比如搜索引擎蜘蛛大多時間是在等待相應這種就屬於I/O密集型。

 

Nodejs

眾所周知node.js是單線程的,正常來說nodejs處理CPU密集型就比較乏力,畢竟只有一條線程。

node從他推出至今,充滿贊美和飽受詬病的都是其單線程模型,所有的任務都在一個線程中完成(I/O等例外),優勢的地方自然是免去了頻繁切換線程的開銷,以及減少資源互搶的問題等等,但是當nodejs面對cpu密集型模型的時候就力不從心了。盡管node擁有異步機制,可以把一些耗時算法丟入eventloop等待下個事件循環再做,但是因為其任然是單線程模型,所以終究會造成阻塞。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM