java 实现磁盘顺序写_JAVA IO专题四:java顺序IO原理以及对应的应用场景

本文介绍了顺序I/O和随机I/O的基本概念,探讨了机械硬盘和固态硬盘的顺序写性能。在操作系统层面,顺序读能更好地利用预读功能提高IO响应速度。Java中,MappedByteBuffer可用于实现顺序IO,通过指定写入位置避免随机写。顺序IO常用于消息队列如kafka、rocketMQ、QMQ等,以提升吞吐量。
摘要由CSDN通过智能技术生成

其他相关专题

顺序I/O和随机I/O基本概念

本次 I/O 给出的初始扇区地址和上一次 I/O 的结束扇区地址是完全连续或者相隔不多的,则算作顺序 I/O。反之,如果相差很大,则算作一次随机 I/O。

硬件层面理解一、机械硬盘

影响机械硬盘的性能因素主要由寻道时间、旋转延迟和数据传输时间三部分构成。

寻道时间

指将读写磁头移动至正确的磁道上所需要的时间。寻道时间越短,I/O操作越快,目前磁盘的平均寻道时间一般在3-15ms。

旋转延迟

指盘片旋转将请求数据所在的扇区移动到读写磁盘下方所需要的时间。旋转延迟取决于磁盘转速,通常用磁盘旋转一周所需时间> 的1/2表示。比如:7200rpm的磁盘平均旋转延迟大约为60*1000/7200/2 = 4.17ms,而转速为15000rpm的磁盘其平均旋转延迟为2ms。

数据传输时间

指完成传输所请求的数据所需要的时间,它取决于数据传输率,其值等于数据大小除以数据传输率。目前IDE/ATA能达到

133MB/s,SATA II可达到300MB/s的接口数据传输率,数据传输时间通常远小于前两部分消耗时间。简单计算时可忽略。

机械硬盘的顺序写性能之所以很好,主要是因为磁头移动到正确的磁道上需要时间,顺序读写时,磁头基本不需要移动。

硬件层面理解二、固态硬盘

固态硬盘是一块随机寻址芯片,它不存在寻道时间和旋转延迟。但是固态的每次数据更新并不是直接操作原来的位置,而是在一块新的位置写入数据,再将旧的位置删除,长此以往则会产生很多磁盘碎片,而固态硬盘实现了类似jvm gc一样的垃圾回收器,随机写越多,垃圾越

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值