首页 > 其他分享 >IO型密集与CPU密集型

IO型密集与CPU密集型

时间:2023-08-01 13:45:32浏览次数:31  
标签:O型 时间 cpu 密集型 线程 多线程 CPU

CPU密集型
一些进程绝大多数时间在计算上,即一个计算为主的程序称为计算密集型(CPU密集型)computer-bound。

多线程跑的时候,可以充分利用起所有的cpu核心,比如说4个核心的cpu,开4个线程的时候,可以同时跑4个线程的运算任务,此时是最大效率。

但是如果线程远远超出cpu核心数量 反而会使得任务效率下降,因为频繁的切换线程也是要消耗时间的。

因此对于cpu密集型的任务来说,线程数等于cpu数是最好的了。

I/O密集型
有一些进程则在input 和output上花费了大多时间,是一个磁盘或网络为主的程序,则称为I/O密集型。常见的大部分任务都是IO密集型任务,比如Web应用,以及搜索引擎蜘蛛大多时间是在等待响应这种就属于I/O密集型。

我们都知道IO的速度比起CPU来是慢到令人发指的,cpu使用率较低,程序中会存在大量I/O操作占据时间,导致线程空余时间出来,所以通常就需要开cpu核数的两倍的线程, 当线程进行I/O操作cpu空暇时启用其他线程继续使用cpu,提高cpu使用率。所以开多线程,比方说多线程网络传输,多线程往不同的目录写文件,等等。此时线程数等于IO任务数是最佳的。

通过上述可以总结出:
线程的最佳数量: 最佳线程数目 = ((线程等待时间+线程CPU时间)/线程CPU时间 )* CPU数目
线程等待时间所占比例越高,需要越多线程。线程CPU时间所占比例越高,需要越少线程。
QA: IO型密集的项目架构 应该如何设计?

标签:O型,时间,cpu,密集型,线程,多线程,CPU
From: https://www.cnblogs.com/Luke-wang/p/17596217.html

相关文章

  • 2. 基于CPU安装Pytorch
    1、确保你已经安装过Anaconda2、在开始菜单→打开Anaconda Prompt环境 3、创建pytorch环境→输入condacreate-npytorchpython=3.8  4、查看已经安装好的库piplist 很遗憾,里面有pytorch,所以我们得安装了 5、进入pytroch官网:PyTorch 上面的代码......
  • 国产麒麟OS及CPU杀入光伏电站“大脑”:稳定可靠 减少进口依赖
    导读近日消息,随着国产OS系统及CPU的飞速发展,越来越多的系统都用上国产替代,现在光伏电站的“大脑”——光伏监控系统也用上了国产的麒麟OS及飞腾CPU,运行稳定可靠。据麒麟软件消息,近期中国华能基于银河麒麟操作系统研发的国内首套全国产光伏监控系统——华能睿渥S316在华能......
  • 【TrafficMonitor】无法显示13代intel的CPU温度
    原因分析TrafficMonitor的温度检测是利用了第三方软件LibreHardwareMonitor,并且这个问题可能与CPU有关按照作者的指示,我们下载并启动了最新的LibreHardwareMonitor,发现一切正常,cpu温度完全可以正常显示怀疑可能是LibreHardwareMonitor对于我的电脑上CPU做了适配,而TrafficMonit......
  • Linux查看CPU核数
    **方法一:通过proc文件系统获取cpu总数量命令如下**cat/proc/cpuinfo|grepprocessor方法二:nproc命令nproc方法三:lscpu显示CPU详细信息lscpuArchitecture:#架构CPUop-mode(s):#CPU运行模式ByteOrder:#字节序CPU(s):......
  • 记一次 .NET 某物流API系统 CPU爆高分析
    一:背景1.讲故事前段时间有位朋友找到我,说他程序CPU直接被打满了,让我帮忙看下怎么回事,截图如下:看了下是两个相同的程序,既然被打满了那就抓一个dump看看到底咋回事。二:为什么会打满1.真的被打满了吗凡事都要用数据说话,我们使用!tp命令观察一下。0:014>!tplogStart:......
  • X86架构CPU下Ubuntu系统环境源码编译pytorch-gpu-2.0.1版本
    本文操作步骤与aarch64架构CPU下Ubuntu系统环境源码编译pytorch-gpu-2.0.1版本大致相同,只是CPU架构不同而已,因此这里只记录不同的地方。 重点:一个个人心得,那就是要编译pytorch源码最好是选择docker环境,因为这种环境下配置比较纯净,一定要避免那种自己使用多年的Linux系统,那种......
  • 从此告别涂硅脂 利民推出新款CPU固态导热硅脂片:一片26.9元
    利民(Thermalright)近日推出了新款HeilosCPU固态导热硅脂片,其中Intel版为26.9元,AMD版售价29.9元。以往向CPU上涂硅脂,需要先挤一粒绿豆大小的硅脂,然后用塑料片涂匀,操作和清理对新手都极不友好。该固态导热硅脂片的最大优势是无需涂抹,只需将其贴在散热器底座上,均匀按压后再将散热......
  • 如何拉取指定CPU架构的并且指定ubuntu版本的并且指定cuda和cudnn版本的docker镜像
    本篇讲的重点是如何拉取带有cuda和cudnn的docker镜像,因此这些的镜像源的频道为NVIDIA:官方地址:https://hub.docker.com/r/nvidia/cuda   根据官方资料我们知道NVIDIA的docker的tag分为三类:  base版本、runtime版本、devel版本:base版本只安装了cuda,runtime版本安装......
  • 如何拉取指定CPU架构的并且指定ubuntu版本的docker镜像
     拉取不同CPU架构下ubuntu22.04镜像:aarch64(armv8)CPU架构:dockerpull--platform=linux/aarch64ubuntu:22.04 x86_64CPU架构:dockerpull--platform=linux/x86_64ubuntu:22.04  ---------------------------------------------------------------------------......
  • IO密集型任务与CPU密集型任务
    IO密集型1.IO密集型任务是指在执行过程中主要涉及到输入输出(IO)操作的任务。这些任务通常需要与外部资源进行交互,如读写文件、网络请求、数据库查询等,而实际的计算量相对较小。2.在IO密集型任务中,CPU的使用率相对较低,大部分时间都花费在等待IO操作完成上。因此,多线程在这种情况......