gpt4 book ai didi

java - 为什么 FileChannel 的性能比 MemoryMappedBuffer 更好?

转载 作者:行者123 更新时间:2023-12-02 03:14:28 27 4
gpt4 key购买 nike

我正在使用多个线程读取 50 GB 文件(只读),每个线程从文件中读取连续的段。我尝试了两种方法

  • 使用 FileChannel
  • 使用从 FileChannel 获取的 MemoryMappedBuffer

我原以为 MemoryMappedBuffer 的性能会优于 FileChannel,但 FileChannel 的性能始终比 FileChannel 高 30% 左右。

我正在寻找解释。我一次映射 1 GB 内存,一旦用完,我就会映射另外 1 GB。

我的环境:Windows 7平台64位xeon 2.7 ghz 2处理器

最佳答案

两种变体都必须执行相同的磁盘 I/O。两者都会在内存中缓存从磁盘读取的页面。内存映射有一些页面错误开销。那么,假设有足够的物理内存可供读取,为什么您期望它会更快呢?

关于java - 为什么 FileChannel 的性能比 MemoryMappedBuffer 更好?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40510713/

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