Dav*_*nan 20
如果您不使用RTTI,可以将其添加到.dpr文件的顶部(紧接其后program
)以删除额外的RTTI信息:
{$IFOPT D-}{$WEAKLINKRTTI ON}{$ENDIF}
{$RTTI EXPLICIT METHODS([]) PROPERTIES([]) FIELDS([])}
Run Code Online (Sandbox Code Playgroud)
如果要将其从所有RTL/VCL单元中剥离出来,那么您还需要将它们包含在项目文件中,以便上述设置生效.我不认为我会这样做,因为我不相信减少可执行文件大小值得编译自己的RTL/VCL的复杂性.
您还可以在.dpr文件中的某处添加以下内容:
{$SetPEFlags IMAGE_FILE_RELOCS_STRIPPED}
Run Code Online (Sandbox Code Playgroud)
这将删除.exe中不需要的重定位信息.不要将它添加到DLL或包!
减少应用程序EXE大小 - 优秀的文章
(取自上面的链接)
通常,使用Delphi创建的EXE文件大于使用其他编程语言创建的EXE文件.原因是VCL.(当然,VCL有很多优点......)
有几种方法可以减少EXE的大小:
01)使用EXE-Packer(UPX,ASPack,...) - UPX
02)使用KOL.
03)在没有VCL的情况下编写应用程序
04)使用ACL(API控件库)
05)使用StripReloc.
06)停用远程调试信息和TD32.
07)您可能希望将代码放入dll中.
08)不要在表格上多次放置相同的图像.在运行时加载它们.
09)使用压缩图像(JPG而不是BMP)
10)在DFM文件中存储较少的属性