FileChannel#map
結果に必要なすべてのメモリをすぐに割り当てますかByteBuffer
、それともバッファからの読み取り中にオンデマンドでのみ割り当てられますか?
簡単なテスト プログラムで 500 MB 以上のファイルをすべてマッピングして、プロセスのメモリ使用量を調べました。(両方Runtime#totalMemory
を使用し、groovysh プロセスの OS X アクティビティ モニターでそれを観察します。) メモリ使用量が 30 MB を超えることはありませんでした。
では、Java 実装は、ネイティブ呼び出しでのメモリ使用量の一部を「隠す」ことができますか? もしそうなら、それが OS X でどれくらいあるかを調べる方法はありますか?