当前位置 : 主页 > 编程语言 > delphi >

Delphi中的使用单元序列

来源:互联网 收集:自由互联 发布时间:2021-06-23
我想知道以下使用单位顺序是否正确. uses FastMM4 in 'Fast\FastMM4\FastMM4.pas', VCLFixPack in 'VCLFixPack.pas', FastMove in 'Fast\FastMove\FastMove.pas', FastCode in 'Fast\FastCode\FastCode.pas', FastMM4Messages in 'Fast\FastM
我想知道以下使用单位顺序是否正确.

uses
  FastMM4 in 'Fast\FastMM4\FastMM4.pas',
  VCLFixPack in 'VCLFixPack.pas',  
  FastMove in 'Fast\FastMove\FastMove.pas',
  FastCode in 'Fast\FastCode\FastCode.pas',
  FastMM4Messages in 'Fast\FastMM4\FastMM4Messages.pas',

我为什么要打扰订单呢?

这里有三个独立的代码:

> FastMM
> VCLFixPack
> FastCode

在执行任何堆分配之前,安装替换内存管理器FastMM非常重要.所以我认为很明显,必须是第一个包含的单位.您也可以将两个FastMM单元放在一起.

其他单元更改内存中的代码,修复错误(VCLFixPack)或提高性能(FastCode).虽然您已经单独识别了FastMove和FastCode,但实际上,FastCode单元实际上安装了一套改进的功能,这些功能由十几个单独的单独单元定义.

在包含VCL单元之前安装VCL修复程序似乎很可能很重要.所以VCLFixPack应该出现在任何VCL单元之前.

至于FastCode,因为它只会影响性能,所以你可以在.dpr文件中的任何一点使用它.初始化代码是否与vanilla RTL代码一起运行可能无关紧要.也就是说,为了保持一致性,将所有这些改变运行时行为的单元放在一起是有意义的.所以我会写这样的.dpr uses子句:

uses
  FastMM4 in 'Fast\FastMM4\FastMM4.pas',
  FastMM4Messages in 'Fast\FastMM4\FastMM4Messages.pas',
  FastCode in 'Fast\FastCode\FastCode.pas',
  VCLFixPack in 'VCLFixPack.pas',  
  ....

我把FastCode放在VCLFixPack之前,因为逻辑上RTL的级别低于VCL.然而,无论如何都无关紧要.但你必须选择一个,这是我的推理.

我也省略了对FastMove单元的显式引用. FastCode和许多其他单元一起使用它,如果你要省略其他单元,你也可以省略FastMove.

网友评论