【发布时间】:2012-01-01 19:23:24
【问题描述】:
我想读取 4GB 文件并通过更改某些字段来创建它的副本。我的首要任务是时间效率,即处理速度应该很快。
我想将它加载到内存中,以便读/写操作变得更快。我应该使用堆吗?或者我应该尝试其他的东西,比如内存映射文件?或任何其他出路?
首先感谢大家的贡献……让我重新提出我的问题……给你……
我必须从用户那里得到一个文件,这个文件大约 3-4GB 大。它包含记录,每条记录都有一些字段,其中包含一些敏感数据,我需要对其进行搜索和加密,直到 EOF..
如果我使用 FILE I/O 执行搜索和加密,它将永远……作为它的批处理……所以当我在 64 位操作系统上工作时,我可以在堆上创建一个 4GB 的数组,加载整个文件并执行操作。此本地副本将提供比 FILE IO 更好的性能...
我正在考虑内存映射文件,因为它将消除对数组(本地副本)的需求并且操作速度也很好,但是我不熟悉它,所以询问上述场景是否可取...... !!
我也在考虑考虑使用 MATLAB ......你也可以建议你是否有更好的出路.. thnx ...
【问题讨论】:
标签: c++ c memory-management file-io linux-kernel