我必须处理非常大的文本文件(2 GB),必须逐行读取/写入它们。使用 ofstream 写入 2300 万行真的很慢,所以一开始,我尝试加快在内存缓冲区(例如 256 MB 或 512 MB)中写入大块行的过程,然后将缓冲区写入文件. 这不起作用,性能或多或少相同。我在读取文件时遇到了同样的问题。我知道 I/O 操作由 STL I/O 系统缓冲,这也取决于磁盘调度程序策略(由操作系统管理,在我的情况下是 Linux)。
关于如何提高性能的任何想法?
PS:我一直在考虑在程序处理数据时使用后台子进程(或线程)来读取/写入数据块,但我不知道(主要是在子进程的情况下)这是否值得。