- 浏览: 71169 次
- 性别:
- 来自: 深圳
最新评论
一、体积测试、比较
环境: delphi2010 + vclskin5.4 + dev5.0
1、delphi2010 单窗口
796KB
2、delphi2010 单窗口 + button + text
820KB
3、delphi2010 单窗口 + vclskin
1.13MB(不加载skin文件), 1.16(加载skin文件)
4、delphi2010 + vclskin5.4 + dev5.0( cXbutton + cXtext)
1.8MB
5、delphi2010 + vclskin5.4 + dev5.0( cXbutton + cXtext + cxGrid)
4.18MB ------
6、delphi2010 + vclskin5.4 + dev5.0( cXbutton + cXtext + cxGrid ) +fastReport
5.67M to 6.67MB
二、原因
1、delphi2010使用的wideString和RTTI
wideString使字符串长度变成了原来的2倍,但增长体积是有限的
RTTI是主要原因
2、dev
a、使用了skin
5.0版本当使用了QtGrid,会自动引入cxLookAndFeels, cxLookAndFeelPainters
有时候将unit中skin都去掉效果不大,可以重新安装dev,安装时候不选skin,可以省下2M
b、使用了print
5M to 9M
三、减小delphi体积的方法
1、关闭RTTI反射机制
自从Delphi2010中引入了新的RTTI反射机制后,编译出来的程序会变得很大,这是因为默认情况下 Delphi2010 给所有类都加上了反射机制。而我们的工程并不每每都需要使用到这个功能,所以对于不需要使用的地方,我们可以简单的用下面的方法禁用RTTI反射,从而大大减小文件体积。
禁用的方法很简单,就是要在工程(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}
-------------实测,1.1环境下,文件大小为750KB;
1.2环境下,774KB;
1.3环境下,大小为1.10MB(加载skin文件)
英文:http://www.zipplet.co.uk/index.php/content/article s_programming_delphi2010rtti
2、关闭debug信息 (默认已关闭)
Project -> Options -> Linking -> Debug information -> disabled
测试:
disabled:11.6MB
an disabled:31.2MB
四、其它方法
1、减小DELPHI应用程序的大小
http://hi.baidu.com/51elv/blog/item/5637a5cff0ef14 31f8dc6124.html
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
五、其他文章
dev编译exe
http://www.devexpress.com/Support/Center/p/Q243794 .aspx?searchtext=cxLookAndFeels&p=T1|P0|0
发表评论
-
字符串 常见类型转换[转]
2012-07-06 09:51 1017C++字符串完全指引之一 -- Win32 字符编码:Co ... -
ultra edit的正则表达式
2012-07-06 09:45 640每次使用ultra edit时都要查找正则表达式语法,现在 ... -
常用正则表达式
2012-07-06 09:37 530爱情使者丘比特问爱神阿佛洛狄忒:love的意义在哪里?爱神 ... -
window.showModalDialog 与window.open传递参数的不同?
2012-07-05 20:45 873简单的说,就是一 ... -
.net 组件开发资源(转)
2012-07-03 13:42 628想写一些.net 方面 ... -
将flex组件添加到papervision3d
2012-07-02 10:25 558上一篇文章介绍了 ... -
关于Flex4工程和 Alternativa3D 7.5.1的疑问
2012-07-02 10:25 646原文:http://bbs.9ria.com/thread ... -
在Flex组件上显示手型的鼠标
2012-07-02 10:25 602在Flex组件上显示手 ... -
flex3:drag-drop全攻略(二)
2012-07-02 10:25 805这里写四个实例:1,List->List 2, ... -
[Sliverlight]写于Silverlight整装待发之际(七):Silverlight VS Flash/Flex
2012-07-01 00:03 624对于两个事物的比较,我们通常会从两个方面出发,共同点和不同 ... -
Flex + BlazeDS 学习笔记 (一) --- BlazeDS的功能原理及配置实例
2012-07-01 00:02 424BlazeDS Test Drive里面 ... -
arcgis flex 安全沙箱问题
2012-07-01 00:02 584前几天在自己的机器上打了一套arcgis flex的开发环 ... -
Flex项目中如何实现跨域访问问题
2012-07-01 00:02 757在Flex项目的代码加载出加入如下的代码: impo ... -
Flex HTTPService 跨域访问
2012-07-01 00:02 751Summary: 基于Web 的flex 程序,后台采用的 ...
相关推荐
DEV动态加载皮肤有效减小EXE大小,生成EXE有3兆左右。不会像默认的有近20M。使用开发语言delphi7 , DEV版本是13 。
Delphi 指定大小分割文件小程序,Delphi 无控件实现文件切割机,源代码无三方控件,可直接编译。打开程序后选择需要切割的文件、选择目标文件夹、然后开始切割,将自动保存到目标文件夹中。同时在切割前,程序允许...
给你个比较常用的delphi 快捷键列表,能提升工作效率 其实这些东西在ide的设置里都...SHIFT+箭头 以1像素单位更改所选控件大小 ALT+F11 Use某个单元 SHIFT+F10 等于鼠标右键(WINDOWS快捷键)。 SHITF+箭头 选择文本
也是给朋友写的一个DEMO。 可以把主程序中的图片都放在资源DLL中。(别的音频什么的都可以)有效地使用主程序文件大小减小。...这是delphi2010代码,不能保证别的版本正常编译。 有本人写的注释,新手可以看看。
1、Delphi macOS 64位ARM编译器和工具链,包括为Intel/Arm AppStore提交构建通用二进制文件 2、Delphi语言支持二进制小数和数字分离器 3、改进了C++工具链,对C++类型的RTTI进行了大修,包括在Delphi类型上使用...
2.对程序专门进行压缩,以减小文件大小,方便传播和储存。 壳和压缩软件的压缩的区别是 压缩软件只能够压缩程序 而经过壳压缩后的exe、com和dll等程序文件可以跟正常的程序一样运行 下面来介绍一个检测壳的...
为了减少大家的开支,我将文件的大小尽可能缩小,也不得已使用可执行程序压缩工具对.Exe文件、.Bpl文件进行压缩。但还是很大,请大家原谅。如果想修改,可以以下面的邮件地址向我索取没有压缩的文件,我会抽时间...
该工具可以有效的压缩delphi7编译的exe,dll,bpl等可运行文件大小.简单易用,功能强大
这是c语言版Excel97 SDK的 Delphi 转译. 其中包括XLCALL32.H的Delphi转译代码和相应的函数声明,...另外,包中的WIHDWOS.PAS、types.pas等文件是我用于压缩编译文件大小的,各位在应用XLCALL32.PAS时,可以不用这些文件。
EXE文件和DLL文件压缩工具UPX图形界面源程序,通过该程序能够获得: 详细参见:https://blog.csdn.net/sensor_WU/article/details/129022703?spm=1001.2014.3001.5501 1. 最新版Delphi 11.2源程序; 2. 学会将命令行...
该病毒会在每个磁盘的根目录复制exe文件,图标为xp文件夹图标,大小为37k,你的根 目录下有多少文件夹它就会复制多少个病毒,而且文件名会和你每个磁盘根目录下的文件夹名一样,原有的 文件夹会被隐藏。2.更改...
能不能使用TClientDataSet又不用MIDAS.DLL呢? 很简单,就是uses一下MidasLib单元! MidasLib单元在Delphi6以及DELPHI的更高版本中才有,是... 然而,编译后程序大小一定会增加200k以上,即使使用包编译模式。
delphi数据库实用编程100例原书配套的光盘,包括书中全部实例的代码。由于上传文件有大小限制,因此删除了实例代码中所有的exe文件,运行时请自行编译即可。
只要双击下载后的Reflector.exe文件即可运行Reflector。 默认情况下,Reflector会打开一组公共程序集(mscorlib、System、System.Data、System.Drawing等等)。每个打开的程序集都列在Reflector的主窗口中。单击...
包名称 文件大小 作用 Ext.3th.7z 91,226,756 网友收集的一些第三方扩展 Ext.Addons.7z 100,567,057 InterBase XE7、FastReport4 等 Ext.Android.7z 1,640,823,804 Android 编译环境 Ext.Help.7z 299,342,286 ...
被链接进Delphi的DCU和目标文件中.不需要额外带DLL. BeaEngin引擎 http://www.beaengine.org/ 限制: 1.不能Hook代码大小小于5个字节的函数. 2.不能Hook前五个字节中有跳转指令的函数. 希望使用的朋友们自己...
本文件是《Delphi 7 新概念百例》的配书源代码,包含编译好的可执行文件。内容如下:├─综合应用篇│ ├─87 用TreeView来显示数据库信息│ ├─86 显示彩色数据表格│ ├─85 文件切割器│ ├─84 加密解密器│ ...
简单小巧局域网聊天、快速(10MB/S)文件(夹)传输 在delphi2010下编译通过,大小只有182KB,无需安装
(已编译的演示文件在该库的评估版中可用) 如果您使用了库的早期版本,则可以阅读摘要 的新功能和更改中的内容history-eng.html。 此版本库中有关新功能的更多详细信息 可以在文件中找到-关于EhLib 9.5 Eng....
3、使用delphi打开rb的source目录下的rbRCL106.dpk项目,然后编译,输出的rbRCL106.bpl文件为目标文件(一般输出到这个目录下Delphi6\Projects\Bpl) 4、把rbRCL106.bpl文件替换掉原安装rb时的同名文件则可,一般该...