我有一个64位处理器。这会占用多少内存?
var x = new point[3];
public struct point
{
int x;//4 bytes
int y;//4 bytes
}
我的猜测是,堆栈将保存对堆的引用。由于我有一个64位处理器,因此引用本身就是8个字节。
在堆上三点"点"将被初始化。所以这至少是24(8x3)个字节。
有没有办法从理论上确定x占用的确切内存?
答案 0 :(得分:1)
您可以使用sizeof
..因为您想知道分配了多少内存(无论分配的位置 - 实现细节):
unsafe {
var sizeRequired = sizeof(point) * 3;
}
如果您想要包含引用的大小,可以将其添加到..
答案 1 :(得分:1)
您可以相对轻松地计算出对象使用的内存量 - 您几乎就在那里。
以下是您需要为Array
:
因此粗略计算缺少标题和字段(如“长度”)。
详情见许多来源,如: