码迷,mamicode.com
首页 > 其他好文 > 详细

CPU密集型和I/O密集型区别

时间:2017-10-06 12:22:42      阅读:184      评论:0      收藏:0      [点我收藏+]

标签:style   频繁   完成   循环   nodejs   event   搜索引擎   索引   loop   

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等待下个事件循环再做,但是因为其任然是单线程模型,所以终究会造成阻塞。

 

CPU密集型和I/O密集型区别

标签:style   频繁   完成   循环   nodejs   event   搜索引擎   索引   loop   

原文地址:http://www.cnblogs.com/amiezhang/p/7631239.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!