Delphi 如何编写一个小程序?

Delphi 如何编写一个小程序?,delphi,filesize,Delphi,Filesize,我希望编程效率高,并保持我的文件大小非常小。 然而,我想知道一些技巧如何做到这一点 例如,对于较小的文件大小,什么更好: 要么: if .... = '1' then begin ... end; 或: 或: 或: 然后我尝试了一些东西,我很惊讶。 我在项目中创建了另一个单元,将字符串存储为常量,然后使用常量变量替换项目中的字符串。出于某种原因,这会增加我的文件大小,尽管我现在将双重使用的字符串替换为var 另外,将内容存储在vars中是否比将它们直接放入代码中更好?! 例如: Functi

我希望编程效率高,并保持我的文件大小非常小。 然而,我想知道一些技巧如何做到这一点

例如,对于较小的文件大小,什么更好:

要么:

if .... = '1' then begin
 ...
end;
或:

或:

或:

然后我尝试了一些东西,我很惊讶。 我在项目中创建了另一个单元,将字符串存储为常量,然后使用常量变量替换项目中的字符串。出于某种原因,这会增加我的文件大小,尽管我现在将双重使用的字符串替换为var

另外,将内容存储在vars中是否比将它们直接放入代码中更好?! 例如:

Function1(param1, param2, param3); // this code is used about 20 times in my project
或者如果我:

Avar = Function1 (param1,param2,param3); // Store this once in a var and then replace it
那么:

if ... = TRUE 
或:

同:

if .... = FALSE
或:

对于较小的文件大小,是否还有其他提高编程效率的技巧

提前谢谢


我使用Delphi7

我很抱歉直截了当,但你是本末倒置

如果您真的想知道如何使可执行文件变小,而不知道给定示例中的代码变化会导致什么差异,那么您应该立即停止阅读/学习/练习,直到您对该语言和编译器有更多的了解

然后你就会明白你的问题本身没有什么意义,因为你已经从你得到的所有相关评论中看到了这一点

  • 完全相同的源代码可以产生截然不同的可执行文件,不同的源代码可以产生相同的可执行文件,具体取决于编译器选项/优化
  • 如果您的主要目标是微观管理/控制生成的exe,请直接在汇编程序中编程
  • 如果您想知道编译器生成了什么,请学习如何使用CPU视图
  • 首先对正确性进行编程,然后对可读性/可维护性进行编程
  • 只有这样,如果需要(意味着使用正确的指标/工具),您才能优化速度、内存使用或文件大小(可能是最不有用/最不需要的)

很久以前,我试着让程序尽可能小,因为它必须放在软盘上(是的,我知道我是恐龙)。这个拆分器工具是用Delphi编写的,大小约为50KB

要使它这么小,就必须不用很多Delphi的单元(特别是
表单
单元和所有引用它的单元)。唯一的方法是直接在GUI上使用Windows API,我现在想不出这样做的理由,但出于兴趣


一旦您使用VCL,exe大小将增长得更多,而您的代码中的所有微优化都无法减少它。

您主要谈论的内容对exe大小没有影响,或者完全可以忽略不计。如果您想要非常小的exe,则不得使用VCL。就这么简单。您提到的所有优化都已由编译器处理。大多数情况下,高效编程与文件大小无关。您应该更多地关注代码的可读性和可维护性。您应该提供更多信息—如果这是一个非常简单的控制台应用程序,则提供完整的源代码。否则这个问题就没什么意义了。UPX实际上让事情变得更糟。加载程序不是只加载您需要的可执行文件的那一部分,而是全部加载。与从共享同一RAM的公共可执行文件运行的多个进程不同,每个进程都需要自己的解包可执行文件副本。
Avar = Function1 (param1,param2,param3); // Store this once in a var and then replace it
if ... = TRUE 
if ....
if .... = FALSE
if not(...)...