CPU密集型操作与IO密集型操作区分
2020-03-31 本文已影响0人
残冬十九
前言
我们讲讲什么是CPU密集型操作和IO密集型操作。
还有什么是CPU密集型操作
什么是IO密集型操作
CPU密集型操作
CPU密集型也可以叫做计算密集型,指的是内存性能和系统硬盘对比CPU好很多,这个时候系统运作CPU处于加载状态,CPU要读写IO,但是IO很短时间就可以完成,而CPU有许多操作计算要进行处理,这时候CPU加载很高。比如一个计算程序要进行大量计算,这时候大部分时间都处在计算的过程中,CPU占用率就很高,。
IO密集型操作
IO密集型跟CPU密集型正好相反,IO密集型值得的CPU相对于硬盘内存好很多,这时候系统运行时,大部分时间都是CPU等待IO的读写操作,而不是IO等待CPU的计算操作,系统CPU利用率不高。IO密集型程序通常在达到性能极限时,CPU占用率还是很低,可能是因为任务本身需要大量的IO操作。
使用
IO密集型,主要涉及到网络、硬盘IO的任务,这类任务消耗cpu操作很少,任务大部分时间都在等待IO操作的完成,对于IO密集型任务,任务越多,CPU效率越高,但也有一个限度。常见的大部分任务都是IO密集型任务,比如Web应用。对于IO密集型操作,对于语言的运行效率不高,所以一般追求开发效率,使用python等脚本语言,
cpu密集型操作,消耗CPU资源,比如计算圆周率、对视频进行高清解码等等,全靠CPU的运算能力。这种计算密集型任务虽然也可以用多任务完成,但是任务越多,花在任务切换的时间就越多,CPU执行任务的效率就越低,所以,要最高效地利用CPU,计算密集型任务同时进行的数量应当等于CPU的核心数。对于CPU密集型操作,一般使用C等效率高的语言