打开文件描述符如何影响内存

打开文件描述符如何影响内存

假设我有一个 250MB 的文件,我通过打开文件描述符来读取该文件。整个文件是否会转储到内存中并保留在那里,直到我关闭文件描述符?
这与使用 sed、grep 或 awk 等命令解析同一文件中的数据有何不同?

答案1

内核会根据内核策略和内存需求情况将文件缓冲在内存中。整个文件可能最终会保存在内存中,并且即使在文件描述符关闭之后,它也可能会保留在内存中,直到需要重用缓冲区为止,因此,如果您之后直接再次使用同一文件运行相同的应用程序,则会消耗很多资源。快点。或者只有部分内容最终会存储在内存中,然后互相读取。

所有应用程序在这方面的行为都是相同的,应用程序是什么并不重要。尽管打开文件的方式有多种,但这可能会影响一切工作方式的细节。

相关内容