[fpc-pascal] instance memory usage

Marc Santhoff M.Santhoff at web.de
Thu Oct 25 00:52:19 CEST 2018

On Wed, 2018-10-24 at 22:06 +0200, Sven Barth via fpc-pascal wrote:
> Am 20.10.2018 um 20:09 schrieb Marc Santhoff:
> > Hi,
> > 
> > from testing a while ago I remember the following:
> > 
> > The memory used by a class instance is composed of
> > 1. the size ".instanceSize()" gives back
> > 2. the memory used by other variables and maybe class instances referenced
> >     by pointers and owned by the instance in question
> > 3. strings are (to be) included in 2., string types are in fact references
> > aka
> >     pointers
> > 
> > The second clause is sort of "by definition", but I do define like that in
> > this case.
> > 
> > Is that listing correct and complete?
> The size InstanceSize() returns is the pointer to the VMT plus the size 
> of any field in the class or any of its parent classes as if it would be 
> a record (keep in mind that class references are merely pointers, so a 
> class having another as a field is merely a pointer, not its 
> InstanceSize(), the same is true for e.g. Ansi-/UnicodeString).

OK, so my list is correct in general. The only thing missing would be the
code, but what I need to count is the data size when having lots of instance.

> Regards,
> Sven

Many thanks.

Marc Santhoff <M.Santhoff at web.de>

More information about the fpc-pascal mailing list