【发布时间】:2013-02-22 08:26:34
【问题描述】:
我有一个只每周运行一次的 C 程序,并且只读取一次大量文件。由于 Linux 还会缓存所有读取的内容,因此它们会不必要地填满缓存,这会大大降低系统速度,除非它有 SSD 驱动器。
那么如何在不填满磁盘缓存的情况下打开和读取文件呢?
注意:
磁盘缓存是指当您读取文件两次时,第二次是从 RAM 中读取,而不是从磁盘中读取。 IE。从磁盘读取一次的数据会留在 RAM 中,因此后续读取同一文件将不需要重新从磁盘读取数据。
【问题讨论】:
-
你会认为 Linux 会有一些关于磁盘缓存的配置。无论哪种方式,这真的是一个 C 问题吗?无论使用哪种编程语言,您都会遇到同样的问题,不是吗?您是否尝试过在 valgrind 中运行该程序?可能是你有内存泄漏。
-
确实如此,否则可能有人发布了 python 代码示例 :)
-
好吧,如果你没有要求 C,你会得到更多“Linux”的答案。请回答我所有的问题:您是否尝试过在 valgrind 中运行您的程序?
-
好的,我把C标签去掉了。