非常に大量のデータをグラフ化する必要がある C# アプリケーションに取り組んでいます (データ セットのサイズは、100 万データ ポイントから 3000 万データ ポイントの範囲です)。
グラフを作成する前に、ポイントを均等に配置するために線形補間を行います (補間はソフトウェアの要件の一部であるため、避けることはできません)。これにより、元のセットよりもさらに多くのデータ ポイントが得られます (たとえば、100 万ポイントは簡単に 150 万以上になる可能性があります)。
メモリを節約するための (愚かな?) 試みとして、私はチャンクで内挿とグラフ化を行ってきました。たとえば、チャンク サイズを 100,000 に設定したので、最初の 100,000 ポイントを補間してグラフ化し、次の 100,000 ポイントを補間してグラフ化し、というように、補間されたすべてのポイントがグラフ化されるまで繰り返します。
2 つの配列 (x 値と y 値を表す) を並列で使用します。配列は、次のチャンクの開始前に再割り当てされます。残念ながら、最大のデータ セット (約 3000 万) の場合、プログラムは OutOfMemory エラーをスローします。
チャンクごとに古い値を新しい値で上書きして、同じ 2 つの並列配列を単純に再利用できるかどうか疑問に思っていましたか? これも良い考えですか?
線形補間の詳細: http://en.wikipedia.org/wiki/Interpolation#Linear_interpolation