Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Programmieren allgemein (https://www.delphipraxis.net/40-programmieren-allgemein/)
-   -   Instancesize (https://www.delphipraxis.net/57912-instancesize.html)

simonko 28. Nov 2005 16:54


Instancesize
 
ich habe folgende klasse

Delphi-Quellcode:
 tx = class(TObject)
   fa : byte;
 end;
Unser professor hat uns erklärt dass jedes angelegte Objekt 4 byte brauch; es kommen dann noch
die variabeln hinzu. folglich müßte dieses objekt 5 byte brauchen.

Nun wenn ich tx.instancesize schreibe steht da acht byte und ich verstehe nicht warum?!?

jim_raynor 28. Nov 2005 17:19

Re: Instancesize
 
Hängt mit Ausrichtung und Optimierung zu sammen auch ein Record mit einem Byte hat insgesamt 4. Es ist für den Prozessor performanter wenn die Variablen in 4 Bytes (32-Bit) ausgerichtet sind.

marabu 28. Nov 2005 17:33

Re: Instancesize
 
Der Compiler reserviert eigentlich nur 5 Byte für deine Klassenstruktur. Da auch der direkt anschließende Speicher benötigt wird, aber der Compiler diesen aber nur an einer Doppelwortgrenze belegen möchte (Alignment), wirst du als InstanceSize nur Vielfache von 4 finden. Näheres dazu findest du unter "Delphi Sprachreferenz :: Der Speichermanager" in der Online Hilfe (D7).

Grüße vom marabu


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:53 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz