【发布时间】:2015-12-21 11:29:56
【问题描述】:
我已经阅读了this 和this 关于如何利用boost::spirit 库在C++ 中有效读取大量文本(第二个问题中的浮动)的问题。
据我所见,上述问题中提出的解决方案读取整个文本,而我需要读取输入文本的部分(例如从 char x 到 char y)。
我可以为此目的利用上面的库吗?否则我怎么能有效地做到这一点?
【问题讨论】:
-
那么,您知道文件中的偏移量,并且您想从该偏移量读取另一个偏移量?那块有多大?
-
没错。但是,这对于 map/reduce 并行项目是必需的,因此每个块的大小可能为 GB。
-
单 GB 还是“数百 GB”?另外,文件是否比您机器的内存大?
-
你说的很对,抱歉我的描述不够。但是最多 10GB(因为我的机器内存是 12GB)。
-
所以我个人的做法是
mmapstartOffset,大小为(endOffset - startOffset)[或相应的Windows功能]。