Programa leva muita memory

Estou usando o WPF para desenvolver um simulador do Game of Life de Conway.

Por algum motivo, às vezes, o programa leva até 400.000K de memory (quando eu desenho muitas células muito rápido).

Como posso reduzir o uso de memory e / ou reduzir os atrasos causados ​​por ele.

Editar 1: Código da Janela Principal: http://pastebin.com/mz0z7tBu

Classe de grade: http://pastebin.com/ZHX1WBuK

estrutura celular:

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

Edit 2: Vou tentar explicar Program Structure: Cell é uma estrutura que contém vizinhos AutoProperty ofType int, e AutoProperty IsAlive ofType bool.

CellGrid é uma class que envolve uma matriz 2D de células. A cada iteração, a propriedade Neighbourhood de cada célula é atualizada para conter o número de vizinhos vivos e, em seguida, IsALive de cada célula é definido como verdadeiro ou falso, depende do número de vizinhos e do estado IsAlive anterior.

A class MainWindow possui um object do tipo CellGrid. Ele renderiza a grade na canvas.

Editar 3:

XAML: http://pastebin.com/Zp3dr8zc

resources.xaml:

           

Este é o resultado do uso de um DrawingContext / DrawingVisual. É realmente benigno e deve ser todo o lixo coletado como o sistema precisa, mas o uso de memory pode ser alarmante. Se você fosse, em vez disso, desenhar formas em uma canvas, provavelmente não veria esse problema. Eu me deparei com esse mesmo problema com controles personalizados no passado. Mudar para técnicas de desenho baseadas em vetores (isto é, formas em uma canvas) corrigiu o problema de consumo de memory.