zoukankan      html  css  js  c++  java
  • 问题-[DelphiXE2]编译程序体积大的问题

    作者: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的一些心德与遇到的问题。

  • 相关阅读:
    EnumMap实现类
    java enum
    openssl生成RSA公钥和私钥对
    rsa 公钥 私钥
    eclispe 通过git向码云上传
    eclipse git 报 git: 401 Unauthorized
    HttpClient 超时时间
    HttpClient 4 和 HttpClient 3 超时
    Java RSA 生成公钥 私钥
    万能适配器
  • 原文地址:https://www.cnblogs.com/FKdelphi/p/4654652.html
Copyright © 2011-2022 走看看