java映射FileChannel实现

标签 java performance memory-mapped-files

使用Mapped FileChannel读取文件似乎快如闪电......但我想知道他们是如何做到这一点的?

他们只是简单地读取一个大的(~64kB)缓冲区,然后让我遍历它吗?还是还有更多内容?

我只是对其速度印象深刻,并希望更好地了解其背后的算法。

最佳答案

除非您这样做,否则他们不会读取任何内容,然后您读取的内容基本上是通过操作系统分页系统读取的。打开可能几乎不会花费您任何费用,但重复读取文件的同一部分可能会导致重复的 I/O。没有什么是免费的。

关于java映射FileChannel实现,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/13898641/

相关文章:

arrays - "looping over a 2-D array"的最佳方式,使用 Repa

android - 如果我们为每个 ABI 上传不同的 apk,我们是否需要上传 universal-apk

c - 如何在C(Windows)中访问父进程创建的内存映射文件

c++ - 读取共享内存中的不同数据类型

Java ArrayList 内容不传播

java - 在java android中覆盖子类中的属性类型

java 运行时 NullPointerException 尽管初始化

java - 我有一个关于如何运行 springboot 项目的问题

c - 我如何确定我的程序运行缓慢是否是 CPU 缓存问题(在 Linux 上)?

c# - 如何从内存映射文件中获取int