【发布时间】:2017-09-11 14:52:52
【问题描述】:
我有以下几行代码:
SomeClass a;
SomeClass b = new SomeClass();
SomeClass c = new SomeClass()
{
Foo="sss",
Bar="dddd"
};
类实例a、b 和c 的大小(在内存中)是多少?
每个变量分配了多少内存?
【问题讨论】:
-
实际变量都是相同大小的,因为它们是引用。并且堆中的实际对象也将具有相同的大小(请注意,字符串将是该对象具有引用两个的单独对象)。当然
a并没有实际引用任何内容,因为它是null。 stackoverflow.com/questions/3800882/… -
堆上的内容和堆栈上的内容实际上是框架的实现细节。字符串实习也是如此。并且 JiT 编译可能会消失,因为它从未被使用过并且是死代码。所以:可能的最大和最小数量之间的任何东西,取决于运行它的运行时。更大的问题是:你为什么要问?你走的是哪一种微优化或错误的道路?
标签: c# memory memory-management size