加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 大数据 > 正文

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

发布时间:2020-12-15 10:18:40 所属栏目:大数据 来源:网络整理
导读:我发布了一个单独的可执行文件(.EXE)用于使用Delphi 2009的桌面程序。我没有外部DLL或资源,我需要该程序运行。 我使用编译成我的可执行文件的两个组件:LMD Innovative’s ELPack和Sergey Tkachenko’s TRichView。 当我构建我的生产版本,使用“发布”构建
我发布了一个单独的可执行文件(.EXE)用于使用Delphi 2009的桌面程序。我没有外部DLL或资源,我需要该程序运行。

我使用编译成我的可执行文件的两个组件:LMD Innovative’s ELPack和Sergey 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。我不期待看到我们组织对此的反应…

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读