私はWPFを使用してConwayのGame of Lifeのシミュレータを開発しています。プログラムのメモリが多すぎます
何らかの理由で、プログラムが400,000Kまでのメモリを消費することがあります。
メモリ使用量を減らしたり、メモリ使用量を減らすにはどうしたらいいですか?
編集1: メインウィンドウコード: http://pastebin.com/mz0z7tBu
グリッドクラス: http://pastebin.com/ZHX1WBuK
セル構造体:
struct Cell
{
public int Neighbors {get; set;}
public bool Alive { get; set; }
}
編集2: 私がしようとするでしょうプログラムの構造を説明する: Cellは、Type intのAutoPropertyネイバーとType boolのAutoProperty IsAliveを含む構造体です。
CellGridは、Cellの2D配列をラップするクラスです。 各CellのNeighborsプロパティが更新されて、Neighborsの数が生き残るように更新され、各CellのIsAliveがtrueまたはfalseに設定されます。近隣の数と以前のIsAliveの状態に依存します。
MainWindowクラスには、CellGrid型のオブジェクトがあります。 グリッドを画面にレンダリングします。
編集3:
XAML:http://pastebin.com/Zp3dr8zc
resources.xaml:
<ResourceDictionary xmlns="http://schemas.microsoft.com/winfx/2006/xaml/presentation"
xmlns:x="http://schemas.microsoft.com/winfx/2006/xaml">
<Style TargetType="{x:Type MenuItem}">
<Setter Property="HorizontalContentAlignment" Value="Center" />
<Setter Property="VerticalContentAlignment" Value="Center" />
<Setter Property="MaxHeight" Value="32" />
</Style>
<Style TargetType="{x:Type MenuItem}" x:Key="ParentMenuItem">
<Setter Property="Width" Value="46" />
</Style>
</ResourceDictionary>
誰もがコードを見ずにガイダンスを提供することは難しいでしょう。 – bronsoja
どのように世代間のタイミングを制御しますか? – DXM
描画コードまたはセルコード? @DMXタイミングはありません。世代はボタンのクリックで渡されます。 –