一.    I/O of software system

输入是系统接收的信号或数据,输出是从其发送的信号或数据。

I/O设备是人(或其他系统)用来与计算机通信的硬件.

Java IO Performance

以下为内存的层次结构:

Java IO Performance

Java IO Performance

I/O of software system:

Java IO Performance

二.    Java I/O APIs

java.io in JDK:

Java IO Performance

Java IO Performance


Reading/Writing from/to text files:

Java IO Performance

Reading/writing from/to bin files:

Java IO Performance


三.    Java nio APIs

在软件系统中,I/O的读写速度比内存慢.大多数情况下的I/O 读写会成为系统的平静,限制系统的效率.提高I/O速度对于提高系统的整体性能具有很大的帮助.于是,便有了NIO(New I/O).

1.Using Buffer to speed up I/O

Buffer是什么: Buffer是物理存储器的一个区域,用于在数据从一个地方移动到另一个地方时临时存储数据.大多数Buffer都是用软件实现的,由于与硬盘驱动器相比,访问时间更快,因此通常使用更快的RAM来存储临时数据/

不使用Buffer进行写测试:

Java IO Performance

测试结果:Java IO Performance

使用Buffer进行写测试:

Java IO Performance

测试结果:Java IO Performance

使用Buffer提高读性能:

Java IO Performance

通过以上测试可以看出,在使用了Buffer后,写时间大大下降,从88ms减少到32ms.

由此可见,使用Buffer可以显著提高I/O性能.

2.Channels

什么是Channels:Channels是java.nio中的一个新的抽象概念,它被定义在java.nio.channels包中. Channels是一个用来在打开的file或socket上执行I/O操作以及若干控制操作的handle.java.nio将channel与RandomAccessFile, FileInputStream,FileOutputStream, Socket, ServerSocket or DatagramSocket相联系.

使用Channels:

Java IO Performance

相关文章:

  • 2022-12-23
  • 2021-11-28
  • 2021-06-13
  • 2021-09-04
猜你喜欢
  • 2022-12-23
  • 2021-05-23
  • 2021-12-06
  • 2021-08-31
  • 2021-09-03
  • 2022-12-23
相关资源
相似解决方案