我有一个大文件(比 RAM 大,不能一次读取整个文件),我需要逐行处理它(在 C++ 中)。我想使用多个内核,最好使用 Intel TBB或 Microsoft PPL。我宁愿避免预处理这个文件(比如把它分成 4 个部分等)。
我正在考虑使用 4 个迭代器,初始化为文件中的 (0, n/4, 2*n/4 3*n/4) 位置等。
这是一个很好的解决方案,是否有简单的方法来实现它?
或者,也许您知道一些支持高效、并发读取流的库?
更新:
我做了测试。IO不是瓶颈,CPU才是。而且我有很多用于缓冲区的 RAM。
我需要解析记录(var 大小,每个大约 2000 字节,记录由唯一的 '\0' 字符分隔),验证它,进行一些计算,并将结果写入另一个文件