1

我正在编写一个程序,它将 .dat 文件中的数据读取到 double[,,] 数组中,计算一些东西并且需要将数组写入文件以保存它们以供以后使用。

这些数组最多可以有 [64x64x150000] 个元素,这迫使我已经将这些文件分成小部分加载到程序中以使用它们(否则会调用 MemoryException)。到目前为止,我使用文本文件将较小的数组保存在我的硬盘上,但是逐步保存 [64x64x150000] 数组最后会填满每个文件超过 6GB 的空间,当您必须使用大量这些 .dat- 时,这很安静文件,并且几乎可以保留所有 .txt 文件。

因此,我想知道是否有任何其他文件类型可以节省一些硬盘空间,或者是否还有另一种可能性将这些数组保存在我的程序之外,以便以后使用,而对硬盘空间的要求更少。

(我需要能够在不同的计算机之间交换文件)。

4

2 回答 2

0

(8 B/双 * (64 * 64 * 150000) 双) / (10 9 B/GB) = 5.6 GB

因此,除非您降低到较低的精度(浮点数)或执行某种压缩,否则您将需要 5.6 GB 来存储所有这些双精度。减少到浮点数将需要每个文件 2.8 GB。

对于长度为 150000 的 64 * 64 向量中的每一个,您可能能够执行信号压缩(取决于数据的样子)。这是一个广泛的话题,所以在不了解更多信息的情况下,我只能给你一个起点:信号压缩

于 2014-07-11T17:37:16.197 回答
0

压缩,或尝试Binary Serialization。double 可以占用文本中的几十个字节,尤其取决于您的编码(每个数字 1-2)。在二进制中,每个字节正好是 8 个字节(+ 不管记账开销多少,可能是最小的)。

于 2014-07-11T17:41:18.097 回答