![]() |
Record vs. Packed Record, Delphi6 vs. D2007
Hallo zusammen,
ich habe heute morgen einen Fehler im Programmverlauf festgestellt. Auf mühsamer Suche habe ich festgestellt, daß das Programm, wenn ich es mit Delphi6 compiliere so läuft wie ich es erwarte und mit Delphi2007 eben nicht. Letzendlich habe ich rausgefunden, daß es eine Struktur(record) im Source war, daß als normales record definiert war. SizeOf von diesem Record in D7 hat 50 Byte ergeben, was richtig war. SizeOf von diesem Record in D2007 hat 52 Byte ergeben, was falsch für meine weiteren Berechnungen war. Definiere ich den Record als packed record, ist das SizeOf bei beiden Versionen 50Byte, also völlig richtig. So wie es aussieht lag es wohl an der Option "Record-Felder ausrichten" in der IDE, was bei mir bei 2007 auf 8 gestellt war. Stelle ich die Option auf den Wert 1 ist der record wieder bei SizeOf 50 Byte groß. Was hat es genau mit dieser Option auf sich? Was würde 2, 3, usw. bedeuten? |
Re: Record vs. Packed Record, Delphi6 vs. D2007
bei einem Alignment von 1 wären ja alle record packed.
8 bedeutet auf Bytegrenzen ausrichten. |
Re: Record vs. Packed Record, Delphi6 vs. D2007
...also wäre es besser die Option auf 8 zu belassen und diesen einen Record zum packed Record zu machen, damit alle anderen Records schnelleren Zugriff ermöglichen, richtig?
Edit...mal auch für andere Zitat:
|
Re: Record vs. Packed Record, Delphi6 vs. D2007
Ja.
|
Re: Record vs. Packed Record, Delphi6 vs. D2007
Zitat:
|
Re: Record vs. Packed Record, Delphi6 vs. D2007
Zitat:
Wie sieht das aber aus bei einem 64Bit-System, was im 32-Bit-Modus betrieben wird (was ja bei modernen Rechnern der übliche Fall sein dürfte)? Ist in diesem Fall ein "Speicherwort" 32 oder 64 Bit groß? |
Re: Record vs. Packed Record, Delphi6 vs. D2007
Zitat:
|
Re: Record vs. Packed Record, Delphi6 vs. D2007
Zitat:
Auch ist durch den Dual Channel Modus das auslesen von 8 Bytes mit einem Lesezyklus schon heute bei 32 Bit Systemen verbreitet. Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 08:28 Uhr. |
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz