Hola
AFilth.
Te hago las mismas preguntas que
Poyo, solicitándote que nos plantees cuál es el propósito de conocer el tamaño de toda la rama de datos (o aclares si es otra cosa lo que buscas). ¿Algo que ver con el almacenamiento de los mismos en algún medio? Danos más detalles de tu caso, por favor.
Cita:
Empezado por poyo
hay alguna que otra estructura interna en los objetos como ser la VMT.
|
Secundando el comentario de
Poyo, en la RTTI muchas clases tienen algo llamado "tabla de inicialización" (
initialization table), en el desplazamiento negativo vmtInitTable de su VMT (ver unidad System.pas). Su existencia permite que los objetos automáticamente liberen campos ("variables" de datos) de tipos que usan contadores de referencia, cuando las instancias son destruidas. Gracias a esa información es posible conocer más sobre la memoria que ocupan ciertos campos, como los de tipo String, pero no puedes conocer del todo las ramificaciones de punteros como los campos de tipo objeto (a menos que éstos estén representados por propiedades publicadas).
Sin adentrarnos más en el lado "tenebroso" del compilador, te invito a dar algo más de contexto sobre tu caso.
Saludos.
Al González.