我知道这篇文章可能看起来重复,但我阅读了所有这些文章并开发了一个样本来测试主题
在 c# http://www.codeproject.com/Questions/177604/Size-of-a-class-in-c 中查找对象实例的大小(以字节为单位)如何获取内存中的对象大小? 使用 C# http://blogs.msdn.com/b/cbrumme/archive/2003/04/15/51326.aspx获取字段的大小(以字节为单位)
我有一个 class whiteout 任何属性或字段,它是空的,只是为了测试它的大小。
[Serializable]
public class MemberStateModel
{
}
我创建一个对象并通过以下代码获取它的大小:
static void Main(string[] args)
{
MemberStateModel o = new MemberStateModel() {};
long size;
using (Stream s = new MemoryStream())
{
BinaryFormatter formatter = new BinaryFormatter();
formatter.Serialize(s, o);
size = s.Length;
}
}
现在它的大小显示为 159,通过那个帖子,我认为这意味着我的 o 大小是 159kbyte,但我认为它不正确,一个空对象不能有这个大小,是真的吗?
这对我来说非常重要,因为我在会话中存储了一些用户的数据,如果这个大小因在我的站点中添加用户而增长,我将需要更多的物理内存来处理我的 Web 应用程序