作者:cashfly 发布:2012-03-27 15:12
最近准备换Delphi高版本来写程序,以前一直用7。想体验一下新版本带来的便捷,首先有一个体积问题,看下文介绍。
首先,在IDE里可以直接编译Win32,Win64和OSX的程序(当然,要调试运行OSX程序,你需要相应的环境)
其次,FireMonkey没有VCL的控件丰富,比如FireMonkey没有RichEdit控件。
第三,FireMonkey程序无论是独立运行还是调试运行,初始化都没有VCL程序流畅。显然是因为FireMonkey程序还要涉及硬件GPU的初始化工作。
最后说说编译后的程序大小。其实最终得到的程序并不大,由于编译器的变化,XE2里Debug版程序比Release版程序大很多,要减小程序体积,就使用Release版。下面给出稍微具体点的信息(都是空程序):
Win32 Debug版 VCL程序大约6M FireMonkey程序大约8M
Win32 Release版 VCL程序大约1.5M FireMonkey程序大约3M
Win64 Debug版 VCL程序大约7M FireMonkey程序大约9M
Win64 Release版 VCL程序大约2M FireMonkey程序大约4M
减小体积的方法:
1、最终使用Release编译模式
2、关闭RTTI反射机制减少EXE文件尺寸在Interface下面加如下代码
{ 关闭RTTI反射机制减少EXE文件尺寸 }
{$IF CompilerVersion >= 21.0}
{$WEAKLINKRTTI ON}
{$RTTI EXPLICIT METHODS([]) PROPERTIES([]) FIELDS([])}
{$IFEND}
3、最终发布程序可再使用Free_UPX(推荐)或ASPACK再次压缩。
这样下来,使用Delphi XE2编译的程序体积可小很多了。虽然还是比Delphi 7大,但可接受了。
在后续版本中,我会陆续分享在使用Delphi的一些心德与遇到的问题。