我正在开发一个目前创建了数百个对象的应用程序.
是否可以确定(或近似)对象(类实例)分配的内存?
我不知道是否有在C#/.NET和/或Visual Studio一个简单的命令或指令:能告诉我有多少内存的单个对象是占用了?我有一个鬼鬼祟祟的怀疑,的sizeof()运算符是要骗我...我在这个信念是否合理?
有一个有点相关的问题在这里,但没有明确的答案是如何衡量的单个对象给出
有没有办法在Delphi中获取类实例的实际大小?
我知道TObject类的InstanceSize方法,但该方法不会以递归方式为对象成员调用自身.例如,假设我们有两个类:
type MyClass1 = class
private
myVar1 : integer;
myVar2 : integer;
end;
type MyClass2 = class
private
myOtherVar1 : integer;
myOtherVar2 : MyClass1;
end;
Run Code Online (Sandbox Code Playgroud)
对于这段代码,MyClass1将是12个字节长度(每个整数4个字节加上4个类的开销)和MyClass2将是24个字节lengh(类开销为4个字节,myOtherVar2为12个字节,myOtherVar1为4个字节)整数).由于myOtherVar2被解释为指针(4个字节)而不是类引用,因此使用InstanceSize将为每个字节生成12个字节.
有没有办法获得类的总大小,包括它对其他类实例的引用?