the*_*ght 5 memory delphi performance delphi-7 delphi-xe
当我关闭{$ IMPORTEDDATA}时,是否有真正的性能提升?
本手册只说明了这一点:"{G-}指令禁止创建导入的数据引用.使用{$ G-}可以提高内存访问效率,但可以防止出现包装单元引用其他包中的变量."
更新:
以下是我可以找到的更多信息:
"调试部分有新选项使用导入数据引用(映射到$ G),它控制导入数据引用的创建(提高内存效率,但阻止访问其他运行时包中定义的全局变量)"
几乎从不
该指令仅指从另一个单元访问全局单元变量。
如果您使用{$G+}
unit1;
interface
var
Global1: integer; //<-- this is a global var in unit1.
Form1: TForm1; //<-- also a global var, but really a pointer
Run Code Online (Sandbox Code Playgroud)
Global1
将通过指针间接访问(如果从外部单元1访问时)
Form1
也将被间接访问(即从直接指针更改为间接指针)。
如果您使用 {$G-},则对整数的访问global
将是直接的,因此速度会稍快一些。
仅当您在另一个单元中和时间关键的代码中使用全局公共单元变量时,这才会产生影响,即几乎从不使用。
请参阅这篇文章:http://hallvards.blogspot.com/2006/09/hack13-access-globals-faster.html