程序占用太多内存

我正在使用WPF来开发康威生命游戏的模拟器。

出于某种原因,有时程序需要高达400,000K的内存(当我快速绘制很多单元格时)。

如何减少内存使用量和/或减少由此引起的滞后。

编辑1:主窗口代码: http : //pastebin.com/mz0z7tBu

网格类: http : //pastebin.com/ZHX1WBuK

细胞结构:

struct Cell { public int Neighbors {get; set;} public bool Alive { get; set; } } 

编辑2:我将尝试解释程序结构:单元格是一个结构,包含类型为int的AutoProperty邻居,以及类型为bool的AutoProperty IsAlive。

CellGrid是一个包装2D数组Cell的类。 每次迭代时,每个Cell的Neighbors属性都会更新为包含Neighbors活动的数量,然后每个Cell的IsALive设置为true或false,取决于邻居的数量和之前的IsAlive状态。

MainWindow类有一个CellGrid类型的对象。 它将网格呈现在屏幕上。

编辑3:

XAML: http : //pastebin.com/Zp3dr8zc

resources.xaml:

           

这是使用DrawingContext / DrawingVisual的结果。 它实际上是良性的,并且应该在系统需要时进行垃圾收集,但内存使用情况可能会令人担忧。 相反,如果你要在canvas上绘制形状,那么你可能不会看到这个问题。 我在过去遇到了与自定义绘制控件相同的问题。 切换到更多基于矢量的绘图技术(即canvas上的形状)修复了内存消耗问题。