如果我将整个Delphi应用程序编译成单个exe文件,那么该文件的大小将会增长到5MB、10MB或更多。那什么时候文件大小才算太大?这样做存在哪些问题?目前该商业应用程序是在 Delphi XE 上开发的。
我知道有一个选项可以使用运行时包进行构建。听起来是个好主意,但我看到这里的评论指出了一些问题和缺点。
如果我将整个Delphi应用程序编译成单个exe文件,那么该文件的大小将会增长到5MB、10MB或更多。那什么时候文件大小才算太大?这样做存在哪些问题?目前该商业应用程序是在 Delphi XE 上开发的。
我知道有一个选项可以使用运行时包进行构建。听起来是个好主意,但我看到这里的评论指出了一些问题和缺点。
png
格式中包含图像。更好的优化方式是确保不会泄漏资源
如何仅在调试模式下激活 ReportMemoryLeaksOnShutdown?
Windows API 调用内存泄漏检测
使用智能数据结构和算法
这里涉及的范围太广泛了,但要使用 O(缓慢增长) 算法而非 O(浪费增长) 算法。
八岁孩子也能懂的 Big-O?
尽可能地限制内存使用,只获取您需要的数据,而不是您可能需要的所有数据但实际上很可能永远都不需要。
Delphi 数据结构
等等。
我不知道应用程序exe大小的任何问题。我目前在开发一个exe文件大小约为60MB的应用程序,没有任何问题。
我所知道的唯一限制是可用内存的限制。使用运行时包的应用程序将消耗更多的工作内存,因为所有运行时包都会在应用程序启动时加载。而这些包中包含了很多你的应用程序可能不会使用的代码。
我真的很喜欢运行时包的想法,但我不喜欢Delphi中的实现方式。一个主要的缺点是你必须将应用程序与一堆包一起发布,这使得维护变得困难。
使用RELEASE版本构建可以减小执行文件大小,提高性能。同时,使用运行时包可以减小exe文件大小,但会增加安装包的大小。