gpt4 book ai didi

java - MappedByteBuffer - 将页面映射到物理内存

转载 作者:行者123 更新时间:2023-12-01 13:16:50 25 4
gpt4 key购买 nike

据我所知,在调用 FileChannel.map 之后,MappedByteBuffer 将文件内容“映射”到内存中,但不一定将整个文件加载到内存中. 所以,如果我开始阅读,例如在 pos(0) 处,当时可能实际从磁盘加载页面,例如文件的前 4096 字节进入主内存(在堆之外,因为它是直接内存缓冲区)。

我的问题是 - 如果我在缓冲区上调用 load() 方法会发生什么?是否会尽力将整个文件映射到内存中,例如考虑到这是我映射的数量,正好加载 1GB 数据?

最佳答案

Would it try to map the ENTIRE file into memory e.g. exactly load 1GB of data, considering this is the amount I mapped?

基本上是的。 JVM 将尝试来实现这一点。

但是“尽力而为”意味着不能保证整个文件都会被加载。并且无法保证文件将保持加载状态。

该行为最终由操作系统(管理虚拟内存资源)决定,并且取决于系统上有多少物理内存、其他应用程序需要什么,以及可能的其他因素。

关于java - MappedByteBuffer - 将页面映射到物理内存,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/22406224/

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