CPU-bound(计算密集型) 和I/O bound(I/O密集型)
I/O bound 指的是系统的CPU效能相对硬盘/内存的效能要好很多,此时,系统运作,大部分的状况是 CPU 在等 I/O (硬盘/内存) 的读/写,此时 CPU Loading 不高。
CPU bound 指的是系统的 硬盘/内存 效能 相对 CPU 的效能 要好很多,此时,系统运作,大部分的状况是 CPU Loading 100%,CPU 要读/写 I/O (硬盘/内存),I/O在很短的时间就可以完成,而 CPU 还有许多运算要处理,CPU Loading 很高。
计算密集型 (CPU-bound)
在多重程序系统中,大部份时间用来做计算、逻辑判断等CPU动作的程序称之CPU bound。例如一个计算圆周率至小数点一千位以下的程序,在执行的过程当中
绝大部份时间用在三角函数和开根号的计算,便是属于CPU bound的程序。
It is because the performance characteristic of most protocol codec implementations is CPU-bound, which is the same with I/O processor threads.
根据以上分析,可以认为通常情况下,大部分程序针对某个特定的性能metric而言
都可分为CPU bound 和 I/O bound两类。
CPU bound的程序一般而言CPU占用率相当高。这可能是因为任务本身不太需要访问I/O设备,也可能是因为程序是多线程实现因此屏蔽掉了等待I/O的时间。
而I/O bound的程序一般在达到性能极限时,CPU占用率仍然较低。这可能是因为任务本身需要大量I/O操作,而pipeline做得不是很好,没有充分利用处理器能力
原文地址 http://www.roboticfan.com/blog/user_2005/104/archives/2008/200891617319.shtml
分享到:
相关推荐
### 执行I/O密集型异步操作 ...本文档总结了Jeffrey Richter关于I/O密集型异步操作的核心知识点,并结合.NET框架的相关特性进行了详细讲解。希望对正在构建响应迅速且可扩展.NET应用的开发者有所帮助。
这种攻击的实施要求攻击者能够识别和利用虚拟机监控程序中的I/O调度特性,并在虚拟环境中执行I/O密集型操作以干扰目标虚拟机的I/O性能。 通过这种方式,虚拟环境中的性能攻击变得复杂,因为攻击者必须精确地了解和...
虽然XML文档的结构化特性可以提高检索精度,但更细粒度的检索(如元素或段落,而非整个文档)和复杂的评分与排名模型(如结合语言模型和层次推理网络)使得传统的I/O密集型检索应用转变为CPU密集型。 文章提出了一...
它通过增强VMM和客户机之间的协同,提高了I/O密集型应用的执行效率,为虚拟桌面和云计算环境提供了更好的性能保障。这项工作对于理解和改进虚拟化环境中的处理器调度策略具有重要的理论和实践意义。
在传统的虚拟化环境中,CPU调度算法通常面临一个问题,即无法根据任务的不同性质进行针对性的调度,导致I/O密集型任务和计算密集型任务在执行效率上可能存在不足。基于任务分类的虚拟CPU调度模型(STC)对此进行了...
SIOC的主要目的是隔离和管理存储I/O资源,确保所有虚拟机免受行为不端的I/O密集型虚拟机(通常被称为“噪声邻居”问题)的负面性能影响。通过在存储I/O资源分配中引入类似于CPU和内存管理中使用的shares(份额)和...
NodeJS 介绍与应用 Node.js 是一个基于 Chrome JavaScript 运行时建立的... NodeJS 的工作原理和特点决定了它的应用场景, NodeJS 非常适合实时数据交互应用、I/O 密集型应用和高并发应用,但不适合 CPU 密集型应用。
这对于 I/O 密集型的进程尤其有益,因为它能够最大化 CPU 的利用率,提高整体性能。异步 I/O 是通过 POSIX AIO API 实现的,这一 API 在 Linux 2.6 内核中成为标准特性,但在 2.4 内核中也有相应的补丁支持。 AIO ...
- **多线程**:每个服务请求创建一个新线程,适合于I/O密集型任务。 - **事件驱动模型**:利用事件机制管理并发,特别适合处理大量I/O操作。 #### 三、高性能异步I/O适配层的技术分析 高并发负载下的Internet服务...
在计算机系统中,输入/输出(I/O)是与...例如,硬盘驱动器通常使用DMA来高效地读写大量数据,而键盘和鼠标等低速设备可能使用中断驱动I/O,以减少CPU的负担。理解这些基本的I/O机制对于设计和优化计算机系统至关重要。
标题 "i2o-dev.rar_space" 暗示了我们关注的是I2O(智能输入/输出)在用户空间中的设备驱动开发相关的知识。I2O是一种系统级的I/O架构...这对于开发者来说是宝贵的资源,可以帮助他们构建高效、低延迟的I/O密集型应用。
文章中还可能探讨了算法对不同类型批处理作业的影响,比如CPU密集型作业、内存密集型作业和I/O密集型作业。不同的作业类型可能会有不同的资源需求和运行特性,算法需要能够识别这些差异,并作出相应的调整。这也是一...
11. **线程池管理**:有效地管理和调整线程池大小,可以避免过多线程切换带来的开销,从而优化I/O密集型应用的性能。 12. **I/O性能分析工具**:如iostat、iotop、strace等,可以帮助开发者监控和分析系统的I/O性能...
然而,Node.js采用了一种不同的策略,它主要处理I/O密集型任务,而非CPU密集型任务。I/O密集型任务的特点是大部分时间都在等待数据读取或写入,而CPU利用率相对较低。Node.js通过非阻塞I/O模型和事件驱动机制,使得...
事件循环和非阻塞I/O的结合使得Node.js特别适合于构建I/O密集型应用,如实时聊天系统、文件服务器、流媒体服务等。然而,对于CPU密集型任务,由于单线程限制,Node.js可能不如多线程环境表现优秀。因此,开发者在...
另外,虚拟I/O技术的实施,使得即便在虚拟化环境下,也能支持I/O密集型应用的高效运行,满足关键业务对性能的要求。 总的来说,虚拟I/O技术在存储网络中的应用为服务器虚拟化环境带来了诸多好处,包括减少资源竞争...
接下来,我们需要关注不同类型的Web并发模型,它们在处理I/O密集型和CPU密集型应用时有不同的表现。 I/O密集型应用如Web服务器,处理请求时大部分时间都花在等待磁盘、数据库或网络操作的I/O上。在这种情况下,CPU...