I0密集型指的是系统的CPU性能相对硬盘、内存要好很多,此时,系统运作,大部分的状况 是CPU在等I/O (硬盘/内存)的读/写操作,此时CPU Loading并不高。I/O bound的程序一 般在达到性能极限时,CPU占用率仍然较低。这可能是因为任务本身需要大量I/O操作,而 pipeline做得不是很好,没有充分利用处理器能力。
CPU使用率较低,程序中会存在大量的I/O操作占用时间,导致线程空余时间很多,所以通 常就需要开CPU核心数两倍的线程。当线程进行I/O操作CPU空闲时,启用其他线程继续使 用CPU,以提高CPU的使用率。例如:数据库交互,文件上传下载,网络传输等。
线程等待时间所占比例越高,需要越多线程,启用其他线程继续使用CPU,以此提髙CPU的利 用率;线程CPU时间所占比例越高,需要越少的线程,这一类型在开发中主要出现在一些计 算业务频繁的逻辑中。
Was this helpful?
0 / 0