[英]Delphi XE8 Console App code size
我有一个小的控制台应用程序,可以在安装程序中使用它来设置注册表设置和日期。 它只有80行代码,没有单位,全部在主程序文件中完成。 它最初是在D2007中编译的,编译后的exe大小为84kB。
我正在尝试使用XE8 32位编译文件,其编译大小为1MB。
我预计新版本会有所增加,但按任何标准,将其放大12倍都是非常糟糕的。
它是在发布模式下编译的,所有调试选项都已关闭。
Uses子句仅包括“ registry,Windows,dateutils,SysUtils”。
这是正常现象还是我错过了其他一些设置以将其关闭?
问题在您的使用列表中。 您正在使用的System.Win.Registry
使用的System.Classes
使用System.RTTI
。
(以下尺寸适用于XE4,但XE8应该相距不远)
仅使用System.SysUtils
空控制台应用程序的大小为122 KB。 添加System.RTTI
,您将最终获得962 KB。
解决方法是取出用过的RTL单元,将它们复制到您的项目文件夹中,并向其中添加{$WEAKLINKRTTI ON}
和{$RTTI EXPLICIT METHODS([]) PROPERTIES([]) FIELDS([])}
。
例如,对System.RTTI
和System.Classes
执行上述操作会将控制台大小减小到417 KB。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.