首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >Java MappedByteBuffer.isLoaded()

Java MappedByteBuffer.isLoaded()
EN

Stack Overflow用户
提问于 2013-02-27 20:43:30
回答 1查看 498关注 0票数 6

在我看来,在Windows上MappedByteBuffer.isLoaded()总是返回false。当我在BSD Unix上测试时,我使用相同的测试数据得到true

我应该担心吗?我基本上不能让isLoaded()返回true,不管我使用多大的数据。

下面是我的测试代码以供参考:

代码语言:javascript
复制
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.RandomAccessFile;
import java.nio.MappedByteBuffer;
import java.nio.channels.FileChannel;
import java.util.logging.Level;
import java.util.logging.Logger;

public class MemMapTest {

    private static final String FILENAME = "mydata.dat";
    private static final int MB_1 = 1048576;  // one Mbyte
    private static final byte[] testData = {0, 1, 2, 3, 4, 5, 6, 7, 8, 9};  // len = 10 bytes

    public static void main(String[] args) throws FileNotFoundException, IOException {

        // Create a 10 Mb dummy file and fill it with dummy data
        RandomAccessFile testFile = new RandomAccessFile(FILENAME, "rw");
        for (int i = 0; i < MB_1; i++) {
            testFile.write(testData);
        }

        MappedByteBuffer mapbuf = testFile.getChannel().map(FileChannel.MapMode.READ_WRITE, 0, MB_1 * 20).load();
        testFile.close();

        if (mapbuf.isLoaded()) {
            System.out.println("File is loaded in memory");
        } else {
            System.out.println("File is NOT loaded in memory");
        }
    }
}

我知道load()只是一个提示,但像我在这里使用的这么小的大小,我希望isLoaded()在某个时候返回true。如上所述,这似乎与Windows操作系统有关。这基本上意味着isLoaded()是完全没有用的。

也许我应该补充一点,即使isLoaded()总是返回false,我的MappedByteBuffer在Windows上也运行得非常好,性能也非常出色。所以当它说它没有加载时,我并不真的相信它。

使用Oracle Java 7更新9在Windows 7上进行了测试。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-02-28 00:01:32

不你不用担心。

根据http://docs.oracle.com/javase/7/docs/api/java/nio/MappedByteBuffer.html的说法,这种行为依赖于“底层操作系统”的实现。

“返回值false并不一定意味着缓冲区的内容不在物理内存中。”

票数 3
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/15112448

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档