关闭{$ IMPORTEDDATA}后会有真正的性能提升吗?
manual只说:“{$ G-}指令禁止创建导入的数据引用。使用{$ G-}可以提高内存访问效率,但可以防止出现引用的打包单元其他包中的变量。“
更新
以下是我可以找到的更多信息:
“调试部分有新选项使用导入的数据引用(映射到$ G),其中 控制导入数据引用的创建(提高内存效率,但防止 访问在其他运行时包中定义的全局变量)“
答案 0 :(得分:4)
几乎从不
该指令仅涉及从另一个单元访问全局单位变量。
如果您使用{$ G +}
unit1;
interface
var
Global1: integer; //<-- this is a global var in unit1.
Form1: TForm1; //<-- also a global var, but really a pointer
Global1
将通过指针进行间接(如果从外部unit1访问时)
也将间接访问Form1
(即从直接指针变为间接指针)。
如果您使用{$ G-},则对整数global
的访问将是直接的,因此会稍快一些。
如果您在另一个单位和时间关键代码中使用全局公共单位变量,即几乎从不使用全局公共单位变量,这只会产生影响。
请参阅此文章:http://hallvards.blogspot.com/2006/09/hack13-access-globals-faster.html