40 GB の大きなバイナリ ファイルをトラバースする必要があるプログラムを作成していますが、物理 RAM が 16 GB しかありません。友人は、ファイル マッピングを使用してこの問題を軽減できると教えてくれました。ファイル マッピングを作成してファイル マップ ハンドルに読み込む方法と、ファイル マッピングが永続メモリ内のファイルの一部を読み取り用の仮想メモリの異なるチャンクにマップする方法を理解しています。
したがって、これを正しく理解していれば、たとえば 10 GB のバッファーを作成し、ファイルの最初の 10 GB をこのバッファーに読み込むことができます。しかし、ファイルの 10 GB マークを超えて読み取る必要がある場合、OS は別のブロックを自動的に取得するのでしょうか、それともコードで手動で取得する必要がありますか?