250MBのファイルがあり、ファイル記述子を開いてファイルを読み込んだとします。ファイル全体がメモリにダンプされ、ファイル記述子を閉じるまでメモリに残りますか?
これは、同じファイルのデータを解析するためにsed、grep、awkなどのコマンドを使用するのとどう違いますか?
答え1
カーネルは、カーネルポリシーとメモリ要件に基づいてメモリにファイルをバッファリングします。ファイル全体がメモリに残り、ファイルディスクリプタが閉じた後でもバッファを再利用するまでメモリに残ることがあるため、後で同じファイルを使用して同じアプリケーションを直接実行することは多くのリソースです。急いで。または、内容の一部だけがメモリに保存され、互いに読み取られます。
これに関して、すべてのアプリは同じように動作し、アプリが何であるかは重要ではありません。ファイルを開く方法はいくつかありますが、これはどのように機能するかについての詳細に影響を与える可能性があります。