【发布时间】:2013-07-11 23:20:18
【问题描述】:
我有一个巨大的vector<vector<bool>>(512x 44,000,000 位)。我需要 4-5 个小时来计算创建它,显然我想保存结果以免我再次重复这个过程。当我再次运行程序时,我要做的就是加载相同的向量(没有其他应用程序会使用此文件)。
我相信文本文件对于这么大的尺寸是不可能的。有没有一种简单(快速而肮脏)的方法来做到这一点?我不使用 Boost,这只是我的科学应用程序的一小部分,所以它必须是快速的。我还想过将其在线反转并将其存储在 Postgres DB 中(44000000 条记录,512 位数据),以便 DB 可以轻松处理它。我已经看到这样的答案需要 8bits > 1byte 然后保存,但是由于我有限的新手 C++ 经验,它们听起来太复杂了。有什么想法吗?
【问题讨论】:
-
将原始位写入二进制文件并将它们读回是个好主意。如果不进行任何压缩,生成的文件将约为 2.6 GB,这应该不是问题。而且写和读应该不会占用太多代码,也不会太复杂。
-
因为 ram 中有很多页面错误?
-
XML 和 SOAP 应该处理这个问题,或者 JSON 如果你很时髦的话......
-
@Kerrek:这么大的数据集的 ASCII 格式臃肿?你在开玩笑吧?
标签: c++ serialization vector