Announcement

Collapse
No announcement yet.

Speicherbedarf einer Komponente

Collapse
X
  • Filter
  • Time
  • Show
Clear All
new posts

  • Speicherbedarf einer Komponente

    ahllo,
    ich habe eine allgemeine frage zum speicherbedarf einer komponente.
    wenn ich eine komponente entwickelt habe und im programm mehrmals erzeuge,
    wird dann für jedes object die einzelen methoden als programmcode mit angelegt oder nur die einzelenen variablen?
    witerhin, gibt es eine möglichkeit, den speicherbedarf eines objectes zu ermitteln?

    psp

  • #2
    Hi

    Den grundsätzlichen Speicherbedarf einer Komponente/Objectes ermittelst Du mit TObjectClass.InstanceSize. Der zurückgegebene Betrag beinhaltet alle generischen Member, also z.B. Felder vom Typ Integer/Float/Events/Pointer etc, alle benötigten DMT/VMT Einträge -> meint 4Bytes pro virtuelle/dynamische Methode, Interfacepointer usw. Dabei berücksichtigt InstanceSize auch Parent Klassen.
    Was NICHT in InstanceSize enthalten ist, sind ALLE dynamisch allozierten Zusatzobjecte die das Object verwaltet. Eine TList als Member nutzt also nur 4 Bytes für den Zeiger auf das TList Object, die größe der allozierten TList wird also nicht berücksichtigt. Auch dynamisch allozierter Speicher wird nicht berücksichtigt, also ALLES was das Object noch selber anlegt und verwaltet.

    Gruß Hagen

    Achso: auch LongString's und DynArray's werden nur als 4 Bytes (Pointer) verwaltet, und belegen so in einem Object als member nur 4 Bytes

    Comment

    Working...
    X