我使用 C++ 读取超过 30000 行和 3000 列的大文件。(30000 x 3000) 矩阵。我使用二维向量来推送读取的数据。但我需要做几次这个过程。有什么方法可以优化阅读过程吗?
问问题
880 次
2 回答
2
内存映射机制还可以,因为只有读取操作。
于 2013-05-22T04:43:25.670 回答
2
我会给你一些想法,但不是确切的解决方案。因为我不知道你系统的全部细节。
- 实际上,如果您有这么大的数据文件,并且下次阅读时只有一些数据发生变化。尝试使用一些数据库方法。
- 为了提高性能,您可以使用并发文件读取(使用多线程逐部分读取相同的文件)。
- 如果您还需要处理数据,则使用单独的线程进行处理,并且可能通过队列或并行队列进行链接。
- 如果您的数据长度是固定的(例如固定长度数字)。如果您知道更改的位置,请尝试仅读取更改的数据,而不是一次又一次地读取和处理整个文件。
- 如果以上任何一项都没有帮助使用内存映射方法。如果您正在寻找可移植性,Boost Memory-Mapped Files将支持您减少工作量
于 2013-05-22T05:14:31.830 回答