FileChannel#map的内存使用情况

mil*_*ose 4 java memory-management mmap

FileChannel#map分配所有所需导致的内存ByteBuffer立即或期间从缓冲区中读取点播是只分配呢?

我只是尝试在一个简单的测试程序中映射所有500+ MB的文件,然后查看该进程的内存使用情况。(Runtime#totalMemory在groovysh进程中同时使用和监视OS X活动监视器。)内存使用从未超过30兆MB。

那么,Java实现是否可以在本机调用中“隐藏”其某些内存使用情况?如果是这样,是否有办法找出OS X上的容量呢?

Tom*_*ine 5

内存使用从未如此简单。所使用的实际缓冲区FileChannel.map不是Java堆的一部分。实际上,该内存可能与其他进程共享。在触摸页面之前,甚至可能无法从光盘读取文件。