Richtig.. wobei die Geschwindigkeitsunterschiede bei vereinzelten Zugriffen aber nicht so sehr ins Gewicht fallen dürften.... Als Alternative kann man, statt den Record als packed zu deklarieren, versuchen die Felder des Records ein bisschen herumzuschieben, sodass jedes an seiner Speichergrenze ausgerichtet ist. Bei deinem Record gäbe es da verschiedene Möglichkeiten:
1: 2: 3: 4: 5: 6: 7: 8: 9: 10: 11: 12: 13: 14: 15: 16: 17: 18: 19: 20: 21: 22: 23: 24: 25: 26: 27: 28: 29: 30: 31: 32:
| type TRec = record var1: DWord; var2: Byte; var3: Byte; var4: Word; var5: Word; end;
TRec = record var1: Byte; var2: Byte; var3: Word; var4: DWord; var5: Word; end;
TRec = record var1: Word; var2: Word; var3: DWord; var4: Byte; var5: Byte; end;
TRec = record var1: Word; var2: Byte; var3: Byte; var4: DWord; var5: Word; end; |
Es gibt wahrscheinlich auch noch ein paar andere Möglichkeiten, aber ich denke das reicht erstmal...