重用阵列以节省内存

时间:2012-05-22 15:53:17

标签: c# arrays memory-management

我正在开发一个C#应用程序,它必须绘制非常大量的数据(数据集大小介于一百万个数据点到三千万个数据点)。

在绘图之前,我会进行线性插值以均匀地分布点(插值是软件要求的一部分,所以我无法避免)。这导致比原始集合更多的数据点(例如,100万点可以容易地变为150万或更多)。

在一个(愚蠢的?)尝试节省内存的过程中,我一直在插入和绘制图块。例如,我设置了一个100,000块的大小,所以我插入前100,000个点并对它们进行图形化,插入第二个100,000点并绘制图形,依此类推,直到所有插值点都被绘制成图形。

我并行使用两个数组(表示x和y值)。在下一个块开始之前重新分配数组。不幸的是,对于最大的数据集(大约3000万),程序会抛出OutOfMemory错误。

我想知道是否可以简单地重复使用相同的两个并行数组,用每个块的新值覆盖旧值?这是一个好主意吗?

详细了解线性插值:http://en.wikipedia.org/wiki/Interpolation#Linear_interpolation

0 个答案:

没有答案