北
北京男人
Unregistered / Unconfirmed
GUEST, unregistred user!
今天用程序生成10000个变量、常量、函数来研究了一下Delphi程序变大的原因。
-----------------------------------------------------------------------------------------------
没用到的变量、常量、函数、单元引用能造成什么后果?
-----------------------------------------------------------------------------------------------
不被引用的常量不被编译到Exe文件里。
不被引用的变量不被编译到Exe文件里,也不让程序变慢、占用内存也不变大,唯一变长的是编译时间长了。
不被引用的变量、常量、函数不会被编译到Exe文件里去,所以不会让EXE文件变大;程序运行期占用内存也不变大,因为编译器都进行了优化,唯一变大的就是编译时间变长了,尤其是定义多余的变量时,不信定义10000个没用的变量试试!
不被引用的用uses语句引用的单元文件让程序变大,这是程序变大的主要远因。想让程序变小,必须把这些没用的Uses去掉,千万别忘从工程里删除此文件的引用,否则程序仍然不减肥!
不被引用的函数不会让程序变大,不管这个函数在什么地方,如果这个函数在另外一个很大的公用单元文件中,那么程序变大的主要原因是因为引用了那个单元文件而不是因为这个单元包含了10000个函数!比如uses 了一下 DBTables.pas单元那么程序马上比原先变大211K,比如你用了其中的15个函数,那么总共也只变大几个K,所以不要怕引用大的单元文件里的函数。
-----------------------------------------------------------------------------------------------
假如你程序里有10000个字符串
-----------------------------------------------------------------------------------------------
假如你程序里引用了10000个字符串,那么程序一定不小,你也许会从这10000个字符串中提取出一些公用的字符串部分,然后用这些字符串拼凑成10000个字符串吗?不,你错了!这样EXE文件并不减肥几个K(除非你10000个字符串都相同),这样反而给自己带来了大量字符串合并的烦琐问题,得不偿失!
-----------------------------------------------------------------------------------------------
总结以上可以作出结论:
1、Delphi程序变大的最大的原因就是引用了多余的单元文件!和引用的单元文件里有多少个函数、变量、常量无关!
和使用了其中多少个有点关系。
2、Delphi程序变慢绝对不是因为定义了过多没用的变量导致的,因为Dephi编译器很聪明的!
3、Delphi程序编译速度变慢有可能是因为定义了过多没用的变量导致的,再聪明也经不起你这样折腾啊!呵呵!!!;)
-----------------------------------------------------------------------------------------------
以下是另外一些建议:
-----------------------------------------------------------------------------------------------
让Delphi EXE减肥的方法:
-------------------------------
1、删除所有没必要的Uses语句,可能会让你程序减肥几百K!!所以少用组件也是个方法。
2、图片组建方面:不要ImageList直接装入图标;少用Image,最好动态装入JPG。
3、可视组件方面:尽量少用大量VCL组件,能少放一个就是少放一个。
4、不可视组建方面:尽量少用非可视组建。最好动态生成。
5、让EXE变大的组件如下:MediaPlayer、ToolBar
不让EXE变多大的组件如下:GroupBox
6、最后用AsPack软件压缩Exe文件
-----------------------------------------------------------------------------------------------
没用到的变量、常量、函数、单元引用能造成什么后果?
-----------------------------------------------------------------------------------------------
不被引用的常量不被编译到Exe文件里。
不被引用的变量不被编译到Exe文件里,也不让程序变慢、占用内存也不变大,唯一变长的是编译时间长了。
不被引用的变量、常量、函数不会被编译到Exe文件里去,所以不会让EXE文件变大;程序运行期占用内存也不变大,因为编译器都进行了优化,唯一变大的就是编译时间变长了,尤其是定义多余的变量时,不信定义10000个没用的变量试试!
不被引用的用uses语句引用的单元文件让程序变大,这是程序变大的主要远因。想让程序变小,必须把这些没用的Uses去掉,千万别忘从工程里删除此文件的引用,否则程序仍然不减肥!
不被引用的函数不会让程序变大,不管这个函数在什么地方,如果这个函数在另外一个很大的公用单元文件中,那么程序变大的主要原因是因为引用了那个单元文件而不是因为这个单元包含了10000个函数!比如uses 了一下 DBTables.pas单元那么程序马上比原先变大211K,比如你用了其中的15个函数,那么总共也只变大几个K,所以不要怕引用大的单元文件里的函数。
-----------------------------------------------------------------------------------------------
假如你程序里有10000个字符串
-----------------------------------------------------------------------------------------------
假如你程序里引用了10000个字符串,那么程序一定不小,你也许会从这10000个字符串中提取出一些公用的字符串部分,然后用这些字符串拼凑成10000个字符串吗?不,你错了!这样EXE文件并不减肥几个K(除非你10000个字符串都相同),这样反而给自己带来了大量字符串合并的烦琐问题,得不偿失!
-----------------------------------------------------------------------------------------------
总结以上可以作出结论:
1、Delphi程序变大的最大的原因就是引用了多余的单元文件!和引用的单元文件里有多少个函数、变量、常量无关!
和使用了其中多少个有点关系。
2、Delphi程序变慢绝对不是因为定义了过多没用的变量导致的,因为Dephi编译器很聪明的!
3、Delphi程序编译速度变慢有可能是因为定义了过多没用的变量导致的,再聪明也经不起你这样折腾啊!呵呵!!!;)
-----------------------------------------------------------------------------------------------
以下是另外一些建议:
-----------------------------------------------------------------------------------------------
让Delphi EXE减肥的方法:
-------------------------------
1、删除所有没必要的Uses语句,可能会让你程序减肥几百K!!所以少用组件也是个方法。
2、图片组建方面:不要ImageList直接装入图标;少用Image,最好动态装入JPG。
3、可视组件方面:尽量少用大量VCL组件,能少放一个就是少放一个。
4、不可视组建方面:尽量少用非可视组建。最好动态生成。
5、让EXE变大的组件如下:MediaPlayer、ToolBar
不让EXE变多大的组件如下:GroupBox
6、最后用AsPack软件压缩Exe文件