[fpc-pascal] instance memory usage

Sven Barth pascaldragon at googlemail.com
Wed Oct 24 22:06:36 CEST 2018


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).

Regards,
Sven


More information about the fpc-pascal mailing list