如何手动计算已使用的内存

时间:2012-10-09 17:16:00

标签: c# memory-management

有没有办法手动计算数组要使用的内存。

我在64位操作系统中用于语言C#

假设我有下一个阵列:

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

所以我的第一个问题是,数组的每个维度都有相同的位符号?假设数字[0] [0]有12位asing(我现在不知道12位是正确的答案)所以这会使第一行成为24位内存吗?

每个维度需要多少fisical和虚拟内存?

如果我使用int,double或string作为数组是否有任何不同的内存使用?

最后,如果我使用GC.GetTotalMemory,我会重新获得数组使用的内存总量的相同结果吗?

1 个答案:

答案 0 :(得分:1)

您需要使用sizeof函数来获取为Type分配的字节数。

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;