Buenos días,
hay alguna forma de saber lo que ocupa un objeto creado en memoria?
Me explico.
Si tengo este código:
Código Delphi
[-]
TClase2 = class
public
Aux: String;
constructor Create(A: String);
end;
TClase1 = class
N: String;
Numero: integer;
Lista: TObjectList;
constructor Create();
end;
procedure TForm1.Button1Click(Sender: TObject);
var
a: TClase1;
b, c, d: TClase2;
begin
a := TClase1.Create;
b := TClase2.Create('cosa1');
c := TClase2.Create('cosa2');
d := TClase2.Create('cosa3');
a.N := 'Clase1';
a.Numero := 1;
a.Lista.Add(b);
a.Lista.Add(c);
a.
ShowMessage(intToStr(a.InstanceSize));
end;
constructor TClase2.Create(A: String);
begin
Aux := A;
end;
constructor TClase1.Create;
begin
Lista := TObjectList.Create;
end;
Da igual cuantos objetos añada a la Lista del objeto a que siempre me va a devolver 16 bytes. Que es la suma de 4 bytes del puntero a la clase, + 4 del String, +4 del entero + 4 del puntero a la objectlist. Pero esa objectlist e incluso el string pueden variar en tamaño. Como puedo saber realmente lo q ocupa en un momento dado????