【问题标题】:Delphi and Performance Coding. Statement Performance and code length results德尔福和性能编码。语句性能和代码长度结果
【发布时间】:2009-07-08 08:00:29
【问题描述】:

让我们简单地幻想和谈论性能。

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

您是否测试过/玩过/实验过,甚至在更改后获得了真正的性能提升,例如,所有 IF 语句尽可能改为 Cases?

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

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

【问题讨论】:

  • 感谢 Lieven 的错误通知和更正!
  • 请提供您提到的文章的链接。我在那里找不到任何名为“性能编程”的东西。

标签: performance delphi


【解决方案1】:

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

【讨论】:

    【解决方案2】:

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

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

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

    while 语句将比 if 语句慢数倍。

    【讨论】:

    • 是的,你是绝对正确的。我确实写错了——我的想法是一样的,但不知怎么写的不一样;)无论如何——谢谢你的提示和插图——我希望它能帮助德尔福编程的其他初学者;)
    【解决方案3】:
    猜你喜欢
    • 2011-02-02
    • 1970-01-01
    • 2010-11-19
    • 2012-10-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-05-27
    相关资源
    最近更新 更多