我想从多个文件中读取行,而不是逐行读取。 这些文件不适合内存,所以我必须从磁盘读取。 在 C 中以最佳性能从多个文件中读取特定行的最佳方法是什么?
例子:
- 文件 4 的第 1 行
- 文件 2 第 5 行
- 文件 4 第 5 行 ......
最佳答案
在 Linux 上,您可以使用 mmap(2) 以数兆字节的 block 读取和内存映射文件。系统调用,可能带有 madvise(2)也许(在另一个线程中)readhahead(2)系统调用。
但瓶颈可能是您的硬件。考虑使用 SSD 或非常快的磁盘。
如果您对行边界感兴趣,您应该显式地管理它们(并内存它们),也许记住一些换行符的一些偏移量。
关于c - 快速读取大于c中内存的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12231798/