pap*_*tis 15
对于值类型使用 sizeof(object value)
对于非托管对象使用 Marshal.SizeOf(object obj)
不幸的是,上面两个不会得到引用对象的大小.
对于托管对象:没有直接的方法来获取它们用于托管对象的RAM大小,请参阅:http://blogs.msdn.com/cbrumme/archive/2003/04/15/51326.aspx
或替代方案:
System.GC.GetTotalMemory
long StopBytes = 0;
foo myFoo;
long StartBytes = System.GC.GetTotalMemory(true);
myFoo = new foo();
StopBytes = System.GC.GetTotalMemory(true);
GC.KeepAlive(myFoo); // This ensure a reference to object keeps object in memory
MessageBox.Show("Size is " + ((long)(StopBytes - StartBytes)).ToString());
Run Code Online (Sandbox Code Playgroud)
资料来源:http://blogs.msdn.com/b/mab/archive/2006/04/24/582666.aspx
探查
使用分析器将是最好的.