Delphi和性能编码。语句性能和代码长度结果

时间:2009-07-08 08:00:29

标签: performance delphi

让我们只是幻想并谈论表现。

正如我在about.delphi.com上读到的称为性能编程的文章,有一些有趣的段落声称Case语句(实际上我更喜欢将其称为结构)比If更快; For比While和Repeat快,但While是最慢的循环运算符。我可能理解为什么虽然是最慢的,但是......其他人呢。

您是否已经测试/播放/试验过,或者甚至在改变时获得了真正的性能提升,例如,在可能的情况下将所有IF语句转换为案例?

此外,我想谈谈Delphi IDE中的其他 - 修改 - 循环和if语句行为,但这将是另一个问题。

女士们,先生们,我们开始吧?

3 个答案:

答案 0 :(得分:3)

当控制结构/循环结构的类型很重要时,这种情况非常罕见。如果您将For循环更改为While循环,则无法获得任何合理的性能提升。相反,算法很重要。

答案 1 :(得分:2)

我怀疑 for 在实践中会比 时慢。

AFAIK, for 时评估条件一次,而(没有双关语)每次评估条件。请考虑以下陈述

for i = 0 to GettingAmountOfUsersIsTakingALotOfTime do
begin
  ...
end;

i := 0;
while i <= GettingAmountOfUsersIsTakingALotOfTime do
begin
  ...
  Inc(I);
end;

while语句的速度比if语句慢很多。

答案 2 :(得分:1)