将字节数组保存到磁盘以减少内存消耗并提高速度?

时间:2013-02-18 10:04:31

标签: python arrays file file-io multidimensional-array

我在数据库中有几千个相同区域的非常大的无线电遥测数组字段。对于所有阵列字段,像素的地理配准是相同的。可以用全有或全无的方法将数组加载到内存中。

我想从所有数组字段中提取特定地理坐标的像素。目前,我查询特定地理坐标的特定像素的索引,然后将数据库中的所有数组字段加载到内存中。然而,这是非常密集的IO并且使我们的系统过载。

我想象如下:我将数组保存到磁盘然后顺序打开它们并寻找对应于像素的字节位置。我想这比将它们全部加载到内存中要浪费得多,速度也快得多。

正在寻求一个被认为是快速操作的职位,还是不会做这样的事情?

1 个答案:

答案 0 :(得分:2)

寻找操作所需的时间将以毫秒测量,在大多数情况下可能小于10。所以这不会成为瓶颈。

但是,如果您必须以任一方式从数据库中检索并保存所有记录,则最终可能会产生大致相同的IO负载,甚至可能更大。写入文件的IO时间肯定大于读入内存。

进行小型实验的时间:)尝试使用几个阵列并计算性能,然后您可以进行数学计算,看看它是如何扩展的。