用C ++读取大数据

时间:2013-05-22 03:58:40

标签: c++ file-handling

我使用C ++读取超过30000行和3000列的大文件。 (30000 x 3000)矩阵。我正在使用2d向量来推送读取数据。但我需要做几次这个过程。有没有办法优化阅读过程?

2 个答案:

答案 0 :(得分:2)

内存映射机制正常,因为只有读取操作。

答案 1 :(得分:2)

我会给你一些想法,但不是确切的解决方案。因为我不知道你系统的全部细节。

  1. 实际上,如果你有这么大的文件包含数据,下次阅读时只会有一些数据发生变化。尝试使用一些数据库方法。
  2. 对于性能,您可以使用并发文件读取(使用多个线程逐个读取相同的文件)。
  3. 如果您还需要处理数据,则使用单独的线程进行处理,并且可以通过队列或并行队列进行链接。
  4. 如果您的数据长度是固定的(例如固定长度数字)。如果您知道更改的位置,请尝试仅读取已更改的数据,而不是一次又一次地读取和处理整个文件。
  5. 如果上述任何内容无法使用memory mapping methodology。如果您正在寻找便携性,Boost Memory-Mapped Files将支持您减少作品