2

圧力マップのストリーミング データを保存しようとしています。基本的に、次のように定義された圧力マトリックスがあります。

double[,] pressureMatrix = new double[e.Data.GetLength(0), e.Data.GetLength(1)];

基本的に、私はこれpressureMatrixを 10 ミリ秒ごとに取得しています。すべての情報を JSON ファイルに保存して、後で再現できるようにしたいと考えています。

私がやっていることは、まず第一に、私がヘッダーと呼んでいるものを、録音を行うために使用されるすべての設定で次のように書くことです:

recordedData.softwareVersion = Assembly.GetExecutingAssembly().GetName().Version.Major.ToString() + "." + Assembly.GetExecutingAssembly().GetName().Version.Minor.ToString();
recordedData.calibrationConfiguration = calibrationConfiguration;
recordedData.representationConfiguration = representationSettings;
recordedData.pressureData = new List<PressureMap>();

var json = JsonConvert.SerializeObject(csvRecordedData, Formatting.None);

File.WriteAllText(this.filePath, json);

次に、新しい圧力マップを取得するたびに、新しいスレッドを作成して新しいものを追加しPressureMatrix、ファイルを書き直します。

var newPressureMatrix = new PressureMap(datos, DateTime.Now);
recordedData.pressureData.Add(newPressureMatrix);
var json = JsonConvert.SerializeObject(recordedData, Formatting.None);
File.WriteAllText(this.filePath, json);

約 20 ~ 30 分後に OutOfMemory Exception が発生します。これは、システムがrecordedData varを保持できないためList<PressureMatrix>です。

これを処理してデータを保存するにはどうすればよいですか? 24~48時間の情報を保存したい。

4

1 に答える 1