Zitat von
s.h.a.r.k:
wollte allgemein mal nachfragen, wie ich den genauen Speicherplatz von einer Instanz einer Klasse (samt darin gekapselten Objekten) und einem Record (samt darin gekapselten Objekten) ermitteln kann?
Das geht imo nur durch rekursives Durchlaufen deiner Objekte/Records, da Objektreferenzen immer nur 4 Byte groß sind und TObject.InstanceSize dies auch nur berücksichtigt. D.h., wenn du in TMyObjekt1 ein weiteres TMyObjekt2 erzeugst und in einer FeldVariablen speicherst, wird die Größe nur um 4 Byte steigen (die Größe deiner FeldVariablen).
Das würde aber zu einigen Problemen führen:
- dass eine Objektinstanz von mehreren anderen Stellen aus referenziert wird. Wie ermittelst du dann den Speicherverbrauch deiner referenzierenden Objekte?
- dass Objektinstanzen sich gegenseitig referenzieren. Welche Instanz verbraucht dann Speicherplatz von welcher anderen?
Alles in allem keine einfache Angelegenheit.