-2

配列が消費するメモリを手動で計算する方法はありますか。

私は64ビットOSで言語C#を使用しています

次の配列があるとしましょう:

int number[][]= new int[2][2];
number[0][0]=25;
number[0][1]=60;
....
...

だから私の最初の質問は、配列の各次元が同じビット割り当てを持っているということですか? number[0][0] に 12 ビットの asing があるとしましょう (12 ビットが正しい答えである場合、今はわかりません)。これにより、最初の行が 24 ビットのメモリ asing になりますか?

各次元はどれくらいの物理メモリと仮想メモリを必要としますか?

配列にint、double、またはstringを使用する場合、使用されるメモリの違いはありますか?

最後に GC.GetTotalMemory を使用した場合、配列によって使用されたメモリの合計と同じ結果が得られますか?

4

1 に答える 1

1

タイプに割り当てられているバイト数を取得するには、sizeof 関数を使用する必要があります。

int number[][] = new int[2][];
for (int i = 0; i < number.Length; i++)
{
    number[i] = new int[2];
}

int size = sizeof(int) * number.Length * number[0].Length;
于 2012-10-09T17:22:49.323 に答える