【发布时间】:2012-10-09 17:15:59
【问题描述】:
有没有办法手动计算数组将要消耗的内存。
我在 64 位操作系统中使用 languaje 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,我会得到与数组使用的内存总量相同的结果吗?
【问题讨论】:
-
int number[][]= new int[2][2];不是有效的 C#,您的意思是int number[,]= new int[2, 2];? -
看看锯齿状数组,在某些情况下,它们会胜过多维数组msdn.microsoft.com/en-us/library/2s05feca.aspx
-
之前的数组实际上是一个锯齿状数组,这是我这样写的原因,它对我的程序效果更好,但我不打算解释漏洞交易
标签: c# memory-management