Ver Mensaje Individual
  #1  
Antiguo 27-01-2009
AFilth AFilth is offline
Miembro
 
Registrado: ago 2005
Posts: 119
Reputación: 19
AFilth Va por buen camino
Exclamation Saber cuanto ocupa un objeto en memoria

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;

{ TClase2 }

constructor TClase2.Create(A: String);
begin
  Aux := A;
end;

{ TClase1 }

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????
Responder Con Cita