我可以做些什么来减少可执行文件的大小(Delphi)?

前端之家收集整理的这篇文章主要介绍了我可以做些什么来减少可执行文件的大小(Delphi)?前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。
我发布了一个单独的可执行文件(.EXE)用于使用Delphi 2009的桌面程序。我没有外部DLL或资源,我需要该程序运行。

我使用编译成我的可执行文件的两个组件:LMD Innovative’s ELPackSergey Tkachenko’s TRichView

当我构建我的生产版本,使用“发布”构建配置,生成的可执行文件是13,533 KB。

在使用Delphi 2009之前,我使用的是Delphi 4.它生成的可执行文件只有2,671 KB,同时包含相同的两个组件,并且基本上具有与当前版本相同的代码

我明白Delphi 2009完全是Unicode(这是我升级的主要原因),而Unicode可能会增加一倍的大小。但这是大约5倍。

有没有理由为什么我的可执行文件必须保持5倍大?还是有一些简单的方式来减少可执行大小的一大部分?

请注意。有些人正在回答压缩德尔福EXE的方法。这不是我想要做的。我想简单地看看为什么要用太多的空间去除可能没有必要的空间。如果这样做,如果需要,压缩仍然可以在之后完成。

安装完毕后,可执行文件的大小就无关紧要。它用于下载目的,并尽可能减少要压缩的服务器负载和下载时间。我更喜欢使用Inno Setup并将程序压缩在安装程序本身中。然后,当它被安装时,它被扩展到全尺寸。这两个都可以防止作为病毒的可能检测,并消除在内存中解压缩程序所需的额外启动时间。此外,我的代码签署我的可执行文件和我的安装例程,一些压缩技术是不兼容的。

有关压缩的更多信息,请参阅StackOverflow问题:Delphi EXE compressor?

ldsandon要我提供我正在使用的选项,所以在这里他们是:

Compiling Options http://www.beholdgenealogy.com/img/compilingoptions.jpg

Linking Options http://www.beholdgenealogy.com/img/linkingoptions.jpg

解决方法

当从Delphi 7移植到Delphi 2010时,我们的.exe的增长例如从16到35兆。

几周前,我在Embarcadero论坛上提出了一个类似于你的问题。 (link)在我的OP中,我列出了一系列关于这个问题的链接,您可能会发现有用的。

我们尝试使用UPX压缩我们的.exe的。让它工作几个小时大大减少了我们的.exe,但是我们可能不会在生产中使用它们,原因如下:

>我们有相当多的.exe是不想等待每一个构建1/2天。 (可能我们可以找到一个非强制性的参数集合到UPX,这将减少这个…)
>尽管.exe的大小减少了,但是我们的发货人并不是这样的,因为我们的安装程序(毫不奇怪)无法从压缩文件中压缩更多的压缩文件,而是能够将原来的16兆低至8兆
>我已经阅读了一些报道,在某些时候(很少,但不是永远不会),UPX exe引发了各种反病毒程序来报告应用程序包含病毒。 (我不记得我看到这个的日期,地点或细节,所以我在这里报告有点不公平)。但是,我们非常不利于承担甚至可能发生的风险,即UPX离开桌子…

Embarcadero论坛上的链接包括一个link到另一个关于这个话题的线索。

我继续对我们在Delphi 2010时发现的代码膨胀感到惊讶和失望。正如Nick所说,Unicode的2X相当过分。

然而,由于IMO,D2010在如此多的其他方面进行了如此惊人的升级,因此,在转向D2010时,这种膨胀是相对较小的权衡。但是,这的确意味着我们可能不得不转移到运送2张CD而不是一张CD。我不期待看到我们组织对此的反应…

猜你在找的Delphi相关文章