为什么delphi编译生成的exe文件这么大
delphi 编译生成的 exe 文件,占用磁盘字节数比较大的原因在于,delphi 编译的文件中包含有其他的数据信息更多。
以下在 delphi xe 10 中,建立一个只包含空窗体的工程,通过多种配置进行编译,生成的 exe 文件大小的测试:
1、通常 delphi 的文件为了调试方便,默认新建工程进行编译的 exe 文件,是包含有 Debug 信息的,其生成的 exe 文件大小约为10.5M:
2、如果将去除调试数据,使用发布版(Release)进行编译,则生成的文件大小约 2.1 M,exe 文件占用大幅减少,可见 debug 占用了很大的磁盘空间:
3、进一步关闭 RTTI(Run-Time Type Information) 反射机制,最后生成的exe 文件约 1.69M:
禁用的方法很简单,就是要在工程(dpr文件中。Delphi2010下项目文件是dproj文件,但dpr文件仍然是默认的编写代码的项目文件)的Uses语句前添加下面的定义就可以了:
{ Reduce EXE size by disabling as much of RTTI as possible (delphi 2009/2010) }
{$IF CompilerVersion >= 21.0}
{$WEAKLINKRTTI ON}
{$RTTI EXPLICIT METHODS([]) PROPERTIES([]) FIELDS([])}
{$IFEND}
简单经过以上3步,delphi 生成的 exe 文件大小已经从最初的 10.5 M,减小到 1.69 M。
此外,诸如:低版本的 delphi 使用 AnsiString 作为缺省字符集,而高版本使用 UniCode 作为字符集等因素,也会使得 exe 文件增大。
另外大家还可以用upx、aspack压缩一下,那样EXE就会更小了。
本网站资源来自互联网收集,仅供用于学习和交流,请勿用于商业用途。原创内容除特殊说明外,转载本站文章请注明出处。
如有侵权、不妥之处,联系删除。 Email:master@gzza.com