在查看我们遗留的 Delphi 7 程序中的一些代码时,我注意到到处都有记录标记为packed
. 这当然意味着记录是逐字节存储的,并且没有对齐以便 CPU 更快地访问。打包似乎是盲目地试图超越编译器或其他东西 - 基本上是重视几个字节的内存而不是更快的访问
示例记录:
TFooTypeRec = packed record
RID : Integer;
Description : String;
CalcInTotalIncome : Boolean;
RequireAddress : Boolean;
end;
我应该解决这个问题并使每条记录正常还是“不”打包?或者对于现代 CPU 和内存,这可以忽略不计并且可能是浪费时间?是否有任何因拆包而导致的问题?