.net 估算/计算内存中对象大小的好方法

.net 估算/计算内存中对象大小的好方法,.net,.net,假设我有一个对象Tom,它有一个类人 Class Person String Name DateTime BirthDate String Role Int32 Salary 如果它有以下值,你能给我一个内存大小的近似值吗 Name=汤姆。出生日期=1990年1月1日。角色=用户。工资=30000 你能给我一些关于计算是如何进行的见解吗?要得到一个真实的数字,请使用。要以编程方式执行此操作,请使用(仅适用于值类型)。您还可以通过直接引用GC来完成此操作 看见 long StopBytes =

假设我有一个对象Tom,它有一个类人

Class Person

String Name
DateTime BirthDate
String Role
Int32 Salary
如果它有以下值,你能给我一个内存大小的近似值吗

Name=汤姆。出生日期=1990年1月1日。角色=用户。工资=30000


你能给我一些关于计算是如何进行的见解吗?

要得到一个真实的数字,请使用。要以编程方式执行此操作,请使用(仅适用于值类型)。您还可以通过直接引用GC来完成此操作

看见
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());