【问题标题】:Java-Does mappedbytebuffer occupy direct memory?Java-mappedbytebuffer是否占用直接内存?
【发布时间】:2017-11-25 03:43:34
【问题描述】:

我很好奇mappedbytebuffer是否占用Java中的直接内存?如here中所述

也可以通过将文件的一个区域直接映射到内存中来创建直接字节缓冲区

当我将文件映射到内存时,应该使用直接内存。但是我用 JVM 参数“-XX:MaxDirectMemorySize=200MB”启动了一个程序,然后我尝试将一个 1GB 的文件映射到内存中,它起作用了。更重要的是,我先分配了一个200MB的directByteBuffer,然后尝试将1GB的文件映射到内存中,它仍然有效!那么,mappedbytebuffer 占用了哪一部分内存呢?

【问题讨论】:

  • 你认为那句话中的“可能”这个词是什么意思?你的问题是“是吗”? “可能”这个词就是答案:也许!可能是!可能!未知!要看! --- 还有什么可以帮助你理解的词吗?
  • 使用比堆更大的 MMF 有什么意义?这违背了将文件连接到内存的目的。

标签: java mappedbytebuffer off-heap


【解决方案1】:

我认为,当您将较大的文件映射到较小的内存时,mappedbytebuffer 的实例可能会映射您刚刚使用的文件区域 到内存中,然后内存中已经映射的其他区域将通过MMU交换到SWAP(硬盘上的虚拟内存)

【讨论】:

    猜你喜欢
    • 2013-08-12
    • 1970-01-01
    • 2016-02-25
    • 2016-03-05
    • 2011-09-23
    • 1970-01-01
    • 2012-06-25
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多