0

我想编程高效并保持我的 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;

然后有一些我尝试过的东西,我很惊讶。我在我的项目中创建了另一个单元,将字符串存储为常量,然后我使用常量变量来替换我的项目中的字符串。出于某种原因,这提高了我的 FileSize,尽管我现在将双重使用的字符串替换为 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 ....

如同:

if .... = FALSE

或者:

if not(...)...

对于较小的 FileSize 进行高效编程的任何其他技巧?

提前致谢。

我用德尔福7

4

2 回答 2

11

很抱歉直言不讳,但你是本末倒置。

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

然后你就会明白你的问题本身没有什么意义,正如你已经从你得到的所有相关评论中看到的那样。

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

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

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

一旦你使用 VCL,exe 的大小就会增长得比你代码中的所有微优化一起减少它的大小要大得多。

于 2012-05-10T20:34:58.733 回答