`
liyixing1
  • 浏览: 959034 次
  • 性别: Icon_minigender_1
  • 来自: 江西上饶
社区版块
存档分类
最新评论

IO对程序的影响

阅读更多

以上图来自书籍 JAVA NIO中文版。

前三行显示了处理阶段的效率提升会如何影响吞吐率。
4,5,6,7,8行显示的是处理时间不变,IO时间对程序的影响。仅仅缩短 I/O 延迟 10%,就可使吞吐率增加 9.7%;把 I/O 时间减半,吞吐率
几乎翻番。

。现在 JVM 运行字节码的速率已经接近本地
编译代码,借助动态运行时优化,其表现甚至还有所超越。这就意味着,多数 Java 应用程序已不
再受 CPU 的束缚(把大量时间用在执行代码上),而更多时候是受 I/O 的束缚(等待数据传
输)。

操作系统与 Java 基于流的 I/O
模型有些不匹配。操作系统要移动的是大块数据(缓冲区),这往往是在硬件直接存储器存取
(DMA)的协助下完成的。而 JVM 的 I/O 类喜欢操作小块数据——单个字节、几行文本。结果,
操作系统送来整缓冲区的数据,java.io 的流数据类再花大量时间把它们拆成小块,往往拷贝一
个小块就要往返于几层对象。操作系统喜欢整卡车地运来数据,java.io 类则喜欢一铲子一铲子
地加工数据。有了 NIO,就可以轻松地把一卡车数据备份到您能直接使用的地方(ByteBuffer 对
象)。
这并不是说使用传统的 I/O 模型无法移动大量数据——当然可以(现在依然可以)。具体地
说,RandomAccessFile 类在这方面的效率就不低,只要坚持使用基于数组的 read( )和 write( )方法。
这些方法与底层操作系统调用相当接近,尽管必须保留至少一份缓冲区拷贝。
  • 大小: 40.7 KB
分享到:
评论

相关推荐

    小程序socket.io客户端, 支持微信小程序、支付宝小程序.zip

    本文将详细介绍如何在微信小程序和支付宝小程序中使用socket.io客户端来实现这一目标。 首先,`socket.io` 是一个流行的实时应用框架,它为开发者提供了易于使用的API,用于创建实时、双向通信的应用。它在...

    单片机 代码 IO口程序

    单片机 代码 IO口程序

    io 小程序

    【标题】:“IO小程序” 【描述】:这个“IO小程序”是个人为了复习和巩固IO(Input/Output)相关知识而编写的。它的主要目的是帮助开发者回顾和理解在实际编程中如何进行数据的输入和输出操作,特别是针对小程序...

    微信小程序socket.io客户端, 支持微信小程序、支付宝小程序socket.io-mp-client-master.zip

    这个名为"socket.io-mp-client-master.zip"的压缩包包含了专门为微信小程序和支付宝小程序设计的Socket.IO客户端库,名为"socket.io-mp-client"。 1. **WebSocket协议**:Socket.IO基于WebSocket协议,WebSocket是...

    RK3288 IO 驱动程序

    该IO 驱动程序不限IO ,所有IO 口均可使用,已经 测试可以。添入到内核中即可

    Socket.IO demo程序

    这个"Socket.IO demo程序"显然是一个用于演示如何在Java项目中使用Socket.IO的实例。 首先,让我们深入了解Socket.IO的核心概念。Socket.IO的目标是提供一个跨平台、易于使用的API,使得开发者能够在各种浏览器和...

    逻辑IO与物理IO 逻辑IO与物理IO 逻辑IO与物理IO

    逻辑IO与物理IO的主要区别在于对IO端口的处理方式。在一些体系结构中,例如PowerPC、m68k等,IO端口被映射到内存空间中,称为内存映射方式,CPU可以直接使用内存访问指令与这些端口交互。这种方式简化了CPU与外设的...

    linux字符驱动程序读写IO端口含makefile和测试程序

    本文将深入探讨如何在Linux 3.5版本下编写字符驱动程序,以实现对IO端口的读写操作。我们将涵盖驱动程序的基本结构、IO端口的概念、读写函数的实现以及测试程序的编写,同时会提及`makefile`在构建驱动程序中的作用...

    通用的IO模拟串口程序

    这个"通用的IO模拟串口程序"正是为了解决在没有内置串口或者串口资源紧张的情况下,通过软件手段实现串口通信的问题。这个程序特别指出适用于任何带有定时器的单片机,这意味着它可以广泛应用于各种类型的微控制器。...

    西门子TP900触摸屏监控所有IO地址模板示例程序-V15版本.zip

    4. **数据处理**:可能包含了对IO数据的处理逻辑,例如报警条件判断、数据记录和趋势分析。 5. **通信协议**:使用如OPC UA、S7通信等协议与PLC进行数据交换,确保高效稳定的数据传输。 6. **用户交互**:设计了...

    IO-INPUT.rar_8051IO读写程序

    总之,8051单片机的IO接口是其与外部世界交互的重要途径,学习并熟练掌握C语言对8051单片机的IO口读写程序,不仅能够提升你的编程能力,也是进一步探索嵌入式系统开发的基石。通过不断练习和实践,你将能够自如地...

    51系列单片机IO测试程序

    这是一个MCS-51系列单片机定时中断的范例,使用最原始的方法来置时间常数,比较适合大专院校单片机课程使用

    威强电工业电脑IO测试程序C#版本

    通过C#编写的IO测试程序,我们可以模拟真实的环境,对IO端口进行读写操作,检测其性能和兼容性,预防潜在的问题,从而提高系统的整体性能和稳定性。 C#是一种强大的编程语言,尤其适合开发企业级应用。在威强电工业...

    FPGA上电后IO的默认状态

    Xilinx FPGA从上电之后到正常工作整个过程中各个阶段引脚的状态,会对硬件设计、引脚分配产生非常重要的影响。这篇专题就针对FPGA从上电开始 ,配置程序,到正常工作整个过程中所有IO的状态进行分析。从时间阶段可以...

    socket.io-events, 用类似事件路由的express实现你的socket.io 应用程序.zip

    socket.io-events, 用类似事件路由的express实现你的socket.io 应用程序 使用 express express,如 event 路由,为你的 socket.io 应用程序提供强大的支持。$ npm install socket.io-eventsvar io = require('sock

    在VB下使用IO接口程序

    本文旨在详细介绍如何在VB下实现对IO接口的有效操作,并通过动态链接库(DLL)的方式增强程序的功能性和效率。 #### 二、IO接口访问的基本概念 1. **直接访问IO接口地址**:在某些应用场景下,特别是涉及到工业自动...

    GPIO.rar_STM32IO检测程序_stm32 io检测_stm32检测io

    STM32 IO检测程序是嵌入式开发中的一个重要环节,主要目的是验证STM32微控制器的输入输出(GPIO)功能是否正常工作。STM32是一款基于ARM Cortex-M内核的微控制器系列,广泛应用于各种嵌入式系统设计,如物联网设备、...

    IO口程序源代码

    IO口程序,是C 语言的源代码程序,可以进行直接的使用

Global site tag (gtag.js) - Google Analytics