CPU密集型和I/O密集型

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/Despairvip/article/details/89084336

I、CPU密集型(CPU-bound)

一、CPU密集型也叫计算密集型,指的是硬盘、内存在读写数据时要比CPU速度快的多,CPU要读写I/O时,I/O在很短的时间内完成,CPU有很多的运算还要处理

二、在多重程序系统(即同时运行多道程序或多处理机同时执行多个程序序列)中,大部份时间用来做计算、逻辑判断等CPU动作的程序称之CPU bound。例如一个计算圆周率至小数点一千位以下的程序,在执行的过程当中绝大部份时间用在三角函数和开根号的计算,便是属于CPU bound的程序。

II、IO密集型

一、IO密集型指的系统的CPU性能比硬盘、内存的性能高的多,大部分时间是CPU在等待IO

二、IO bound的程序一般在达到性能极限是,CPU占用率仍然比较低

III、CPU密集型 vs IO密集型

我们可以把任务分为计算密集型和IO密集型。

CPU密集型任务主要消耗CPU资源,代码的运行效率就至关重要,Python这样的脚本语言运行效率太低,并不适合CPU密集型任务

I/O密集型任务主要涉及到网络、磁盘的IO,这类任务的特点是CPU少,任务大部分时间都在等待IO,IO任务执行期间,99%时间都花在IO上,对于IO任务,代码开发效率越高(代码少),就越适合,脚本语言最适合

猜你喜欢

转载自blog.csdn.net/Despairvip/article/details/89084336