如何编写一个小程序?

时间:2012-05-10 18:21:52

标签: delphi filesize

我想编制高效的程序并保持我的FileSize非常小。 但是我想知道如何实现这一目标。

例如,对于小型FileSize更好:

或者:

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

或:

if ..... = inttostr(1) then begin
...
end;

或:

if .... = inttostr($0001) then begin
...
end;

或:

case of intvar
  1: ...
  2: ...
end;

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

将内容存储在变量中比将它们直接放入代码中更好吗?! 例如:

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 ....

同样:

if .... = FALSE

或:

if not(...)...

为较小的FileSize编写高效程序的其他任何提示?

提前致谢。

我使用Delphi7

2 个答案:

答案 0 :(得分:11)

我很抱歉直言不讳,但是你把车推到了马前。

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

然后你会明白你的问题本身没什么意义,因为你已经可以看到所有相关的评论。

  • 完全相同的源代码可能导致完全不同的可执行文件和不同的源代码可能导致相同的可执行文件,具体取决于编译器选项/优化
  • 如果您的主要目标是微管理/控制生成的exe,则直接在汇编程序中编程。
  • 如果您想知道编译器生成的内容,请了解如何使用CPU视图。
  • 首先是正确性的程序,然后是可读性/可维护性
  • 只有在需要时(暗示使用正确的指标/工具),您才能优化速度,内存使用或文件大小(可能是最不实用/最不需要的)

答案 1 :(得分:4)

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

为了得到这么小,有必要没有很多Delphi的单位(尤其是Forms单位和所有引用它的单位)。唯一的办法就是直接使用Windows-API进行GUI,我现在想不出这样做的理由,但出于兴趣。

只要你使用VCL,exe的大小就会增长得更多,比你代码中的所有微优化都可以减少它。