如何减小应用程序(EXE)的大小?

[入库:2005年8月18日] [更新:2007年3月24日]

本文简介:选择自 visli 的 blog

如何减小应用程序(exe)的大小?

一般来说,由delphi生成的exe文件,要比其由它编程语言生成的体积大一些。这主要是由于使用vcl的原因(当然,vcl是有许多优点的!)

以下是减小exe文件大小的几种途径:

01) 使用加壳工具(如 upx,aspack 等)
02) 使用 kol
03) 不使用vcl来编写程序
04) 使用 acl (api 控制库)
05) 使用 stripreloc
06) 去除运程调试信息与 td32
07) 把允许的代码写到 dll 中
08) 不要在设计时把图片放置在 form 上,而是运行时加载
09) 使用被压缩的图片(使用jpg 而不用 bmp)
10) 在 dfm 文件中减少属性
(参考后面的链接 “怎样使您的exe文件更轻便”)
11) use the tstringlist replacement by ~lom~
use the minireg - tregistry replacement by ben hochstrasser

01)
upx 是一个免费、轻便、可扩展和高性能的可执行文件加壳工具,支持多种不同的可执行文件格式。它可以达到非常优秀的压缩比,且可以非常快的解压。

http://upx.sourceforge.net/

aspack 是一款高级的win32可执行文件压缩器,可以减小32位windows程序的大小达70%。(aspack的压缩率提高了zip文件格式产业标准10-20%) aspack使得windows 95/98/nt 程序与库更小,降低了网络的传输量。它也可以在一定程度上保护程序免受那些非专业黑客的反向工程。压缩后的程序在运行时基本上没有什么性能上的影响。

http://www.aspack.com/aspack.htm

{****************************************************************}

02)
kol - (关键对象库 key objects library)是用于 delphi 开发强大的32位windows图形用户界面应用程序一套对象库。它比用vcl进行开发可以使程序变得更小。

http://bonanzas.rinet.ru/

{****************************************************************}

03)
不使用vcl
如果您想要实现瘦小的exe文件,就不要使用vcl,delphi 完全可以让您通过调用winapi函数来实现delphi 100%的丰富功能。

http://nonvcl.luckie-online.de/
http://www.erm.tu-cottbus.de/delphi/stuff/tutorials/nonvcl/index.html
http://www.swissdelphicenter.ch/en/delphizeus
http://www.tutorials.delphi-source.de/nonvcl/


{****************************************************************}

04)

acl (api 控制库 api controls library)
纯以api写程序是完全可能的,但我希望达到两个目的 —— 写出瘦小程序和生成新的控制库,在写程序的时候,也就创建了我自己的twincontrol和全部标准的windows控制类.

http://www.apress.ru/pages/bokovikov/delphi/index.html

{****************************************************************}

05)
stripreloc是一个免费的(gpl 许可协议) 命令行应用程序,用于移去win32 pe格式文件多余的重配区段(".reloc") ,以减小它们的大小。大多数编译器/链接程序(包括delphi)会在exe文件里写入重配区段,但由于exe文件从不会重新部署,所以该区段只会浪费空间。

http://www.jrsoftware.org/striprlc.php

{****************************************************************}

06) 
去除调试信息

debug信息会占用一部分空间的,对于最终的发行版,完全可以不要这部分信息 。
delphi ide菜单
    project-options-compiler - debugging 与
    project- options - linker - exe and dll options

去掉下面两项,可以减少文件的大小
"include td32 debug info" 与 "build with runtime packages".

{****************************************************************}

08/09) 
对于图片

最好不要在设计期把图片加到窗体,尤其是大的图片,因为这样以来,delphi会把图片也编译到你的可执行文件中去,从而增大exe文件的尺寸。建议在运行时,以代码的方式,实时的载入图片。

{****************************************************************}

10)
怎样使您的exe文件更轻便:
http://www.undu.com/dn970301/00000064.htm

{****************************************************************}

11)
tstringlist replacement by ~lom~
minireg - tregistry replacement

 

本文关键:如何减小应用程序(EXE)的大小?
  相关方案
Google
 

本站最佳浏览方式为 分辨率 1024x768 IE 6.0(或更高版本的 IE浏览器)

go top