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

使用Delphi构建的exe大于100MB是否有任何风险?

发布时间:2020-12-15 09:50:45 所属栏目:大数据 来源:网络整理
导读:我的Delphi win32 VCL应用程序被部署为一个大的exe.该应用程序是一个客户端服务器应用程序,具有连接到SQL Server的胖客户端. 这很方便(只需更新共享文件夹中的一个文件并更新应用程序 – 当然数据库模式也会更新). 由于我在每个版本中都使用了很多“胖”的第
我的Delphi win32 VCL应用程序被部署为一个大的exe.该应用程序是一个客户端服务器应用程序,具有连接到SQL Server的胖客户端.

这很方便(只需更新共享文件夹中的一个文件并更新应用程序 – 当然数据库模式也会更新).

由于我在每个版本中都使用了很多“胖”的第三方组件,比如ReportBuilder和DevExpress,因此exe大小的增长主要是因为这些组件变得越来越大.

在dpr我设置这些标志以确保从共享文件夹或可移动设备启动exe时,它总是加载到内存中(并避免奇怪的连接错误):

{$SetPEFlags IMAGE_FILE_NET_RUN_FROM_SWAP}
{$SetPEFlags IMAGE_FILE_REMOVABLE_RUN_FROM_SWAP}

如果exe是使用Release Build Configuration构建的,那么普通的exe通常会减小大约50%的大小(与Debug Build Configuration相比).但是因为我使用EurekaLog,使用Build而不是Debug构建只是略微减小了大小.

目前我的exe是115MB(使用“Build”Build配置和EurekaLog构建).

在任何人的经历中都可以吗?是否有一个已知的限制,建议不要超过?

以下是近年来规模的增长情况:

2014年:76MB

2015年:82MB

2016年:90MB

2017:97MB

2018年:115MB

由于我最近超过了100MB的限制,我开始担心.

我知道可以用运行时包构建,但我的问题集中在尽可能保持单个大exe方法.

我记得cnPack有一个我过去尝试过的Uses Cleaner功能.这可能有助于我删除一些未使用的单位,从而减少exe大小,但无论如何这不能阻止我超过100MB的趋势.

谢谢.

解决方法

我问EurekaLog,他们回答说:

The size of your EXE after EurekaLog processing is mostly determined
by the size of your MAP file. Other things that affect the size of the
EXE include the EurekaLog options you select,such as memory checks,
Senders,JCL support,Etc.

You can reduce the size of the EXE somewhat by selecting the EL
Compression option. Keep in mind that compression can affect startup
time,since the debug information needs to be decompressed when you
launch the EXE.

You can further reduce the MAP file size by turning off debug
information in parts of your program that you don’t need to stack
trace after a crash. Large component libraries like DevExpress would
be a good start.

Last,you may have other compiler options like range checking turned
on/off in tandem with EurekaLog. Some compiler options can contribute
to EXE size.

You can use our EurekaLog PE Analyzer to view details on debug
information size,Compression,Etc.

所以当用户Ville Krumlinde说调试信息是原因时,他就是对的.所以要回答这个问题,没有问题,有一个大的exe,减少exe大小必须使用Release Build Configuration,使用Eureka Log应该尽量减少他的地图文件大小,在上面的引用大多数提示都有.

(编辑:李大同)

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

    推荐文章
      热点阅读