假设我有对象Tom,它有类Person。
Class Person
String Name
DateTime BirthDate
String Role
Int32 Salary
如果它具有以下值,你能给我一个近似的内存大小:
姓名=汤姆。 BirthDate = 1/1/1990。角色=用户。薪水= 30000
您能否对我如何进行计算有所了解?
答案 0 :(得分:2)
要获得真实数字,请使用CLR profiler。要以编程方式执行此操作,请使用sizeof
(仅适用于值类型)。您也可以通过直接引用GC like this ...
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
long TotalBytes = StopBytes - StartBytes;
MessageBox.Show("Size is " + TotalBytes.ToString());