高分解能波形の場合、約320,000,000のデータポイントで作業します。各データポイントは、合計8バイトの2つの浮動小数点(XY座標)を必要とします。C#では、構造体にどれくらいのメモリが必要ですか?
このメモリを一度に割り当てられていために、私は次のようなstruct
を使用して計画された:
public struct Point
{
public float X; //4-bytes
public float Y; //4-bytes.
}
構造体は値型ですので、私はそれだけで消費することを想定しています各変数に必要なメモリ量と、小額の固定金額がCLR(共通言語ランタイム)で使用されています。
アプリケーションの実行時に構造体が使用するメモリ量を計算する方法はありますか?つまり、私は次のことを知っています:
- 構造体内にいくつの変数がありますか。
- 各変数に使用されるバイト数。
- 与えられた時点で、構造体のいくつのインスタンスが生きていますか。
'GC'クラスにはいくつかのメモリ測定機能があります。 –
もっと深刻な問題は、これらの320millをどのように作ろうとしているかです。配列内のリストで.... – pm100
https://blogs.msdn.microsoft.com/joshwil/2005/08/10/bigarrayt-getting-around-the-2gb-array-size-limit/(または検索用語 'gcAllowVeryLargeObjects ')がここで使用されている可能性があります。 – spender