Delphi:FastMM 使您的可执行文件更大?

标签 delphi fastmm

FastMM 会使您的可执行文件更大吗?我注意到我的应用程序增长了大约 300-500kb,这对我来说相当大了。我已经关闭了delphi编译器选项以排除调试信息,但大小没有改变。

我使用FastMM的FullDebugMode,这会影响大小吗?但是当我尝试关闭它时,它会查找 libc,但我找不到。

请帮忙...我正在使用 D5

最佳答案

首先,这并不重要。使用该选项编译的程序不适用于一般分发。它们旨在帮助您找到问题,以便您可以修复它,然后在不启用调试选项的情况下发布程序的正确版本。

其次,只有当您仍然在软盘上分发时,半兆字节才算大。这是否真的有多大空间取决于您的程序之前有多大。分发程序时对其进行压缩,您可能几乎不会注意到其中的差异。

最后,对于你问题的关键,是的,完整的 Debug模式会让你的程序变得更大。很明显,启用该模式会添加更多代码。它添加了执行所有调试检查的代码,例如检查堆损坏、生成堆栈跟踪、捕获已释放接口(interface)的使用、将错误记录到文件以及记录内存泄漏。它还添加了加载和使用完全 Debug模式 DLL 的代码,并将所有汇编器函数更改为用普通 Delphi 编写。

有关调试信息的编译器选项应该不起作用。控制DCU文件中是否包含调试信息;该信息始终从 EXE 文件中排除(除非您正在谈论 TD32 调试信息,但无论如何您都不应该启用该信息,因为您没有使用 Turbo Debugger)。

如果您的程序正在寻找 Libc 单元,那么您所做的不仅仅是打开完全 Debug模式。您以某种方式打开了 Linux 模式。您没有使用 Linux,所以不要打开该模式。如果您遇到困难,请将 FastMM4Options.inc 副本替换为原始版本,然后重新开始。

关于Delphi:FastMM 使您的可执行文件更大?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4039463/

相关文章:

sorting - Delphi 字符串变体比较是否使用 loInvariantLocale?如何在本地启用 loUserLocale?

windows - 可以覆盖 CreateParams 过程让我仍然可以完全访问 WS_SYSMENU 吗?

database - Delphi:如何以编程方式创建 Firebird 数据库

delphi - 在关闭应用程序时终止所有线程(TThread)

delphi - 在delphi Canvas 上模拟高亮笔

delphi - 为什么 FindWindow() 不是 100% 可靠?

delphi - FastMM 无法检测内存泄漏

Delphi XE8使用哪个版本的FastMM?

httpd.conf - Apache 内存泄漏

delphi - 如何注册预期的内存泄漏