FireMonkey工程减肥

今天和同事在搞一个Delphi XE2的东东.结果发现FireMonkey编译出来的程序有8MB.即便采用了Release + WeakRTTI编译选项也3.5MB左右.

阅读了一下FireMonkey的源代码.发现FireMonkey耦合的非常紧密.

例如Forms单元,就实现了2D,3D的Forms.从而引用了这些相关实现单元.这些单元如果有初始化节则很多代码就不会被编译器优化掉.

更有甚者Types居然是用了ListBox和Edit单元…

不过问题虽多但FireMonkey也有一个好处就是和VCL不一样,FireMonkey和RTL\IDE之间捆绑的非常松散.全部代码都在FMX目录中.之家拷贝出来修改即可.然后把加入到search路径即可.

做了一下调整.在FMX.INC文件里面加入了两个编译开关.

{.$DEFINE USE3D}
{.$DEFINE NOINPUT}

如果不用FMX3D则第一可以关掉.如果没用到输入可以关掉第二个.

这样编译出来的Release版本体积可以减小到2.2MB多.整整减肥1MB多.

如果两个开关全开的话在IDE中调试会报一个异常.但是单独执行的话不会有问题.

如果兄弟们有什么其他的措施能减到更小别忘了告诉我一下.

源代码下载fmx

此条目发表在Delphi, 未分类分类目录。将固定链接加入收藏夹。

FireMonkey工程减肥》有2条回应

  1. 匿名说:

    在这里加入指示也能减少很多体积。
    program BaccaratRoadmap;

    {$WEAKLINKRTTI ON}
    {$RTTI EXPLICIT METHODS([]) PROPERTIES([]) FIELDS([])}
    {$WARN SYMBOL_PLATFORM OFF}

    uses
    FMX.Forms,

评论已关闭。