gpt4 book ai didi

java - 为什么人们说 MappedByteBuffer 的 mmap 更快?

转载 作者:行者123 更新时间:2023-11-29 10:06:19 25 4
gpt4 key购买 nike

我认为 mmap 没有使用虚拟内存快,它仍然有硬盘 I/O。

但是网上很多人说它很快,但没有理由。

在我的测试中,我使用 BufferedReader 和 MappedByteBuffer 读取一个文件,第一个更快。

最佳答案

MappedByteBuffer 适用于读取非顺序读取的二进制文件。

一个例子是读取包含的数据库索引文件具有文件偏移量的树数据结构到文件的其他部分。在这个在这种情况下,您不断地在文件中向前和向后寻找并且读取数据和我的测试表明使用 MappedByteBuffer 比使用RandomAccessFile.

使用 BufferedReader 顺序读取文本文件或二进制文件或 BufferedInputStream 是高效的。使用通常没有优势为此的内存映射文件和管理内存映射的开销可能会使 MappedByteBufferBufferedReaderBufferedInputStream 慢。

关于java - 为什么人们说 MappedByteBuffer 的 mmap 更快?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/7200690/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com