代码之家  ›  专栏  ›  技术社区  ›  Gaby

如何使我的代码快速[关闭]

  •  7
  • Gaby  · 技术社区  · 16 年前

    请任何人给我一个好的教程,帮助我使我的代码快速和轻松。 我有兴趣知道哪种方法更快,什么时候用一种方法代替其他方法…
    如何评估代码是好是坏?
    我的编程语言是C。

    嗨,大家好,
    谢谢你的回复,它们很有帮助。
    我正在编辑我的问题,以更具体地说,优化是无限的。
    我想知道在每种情况下什么是最好的方法。
    例如,如果我将行附加到字符串中,那么使用StringBuilder比使用String更好… 我只需要这些简单的东西。

    12 回复  |  直到 16 年前
        1
  •  18
  •   Community Mohan Dere    9 年前

    了解子优化。

    即使一个特定的函数比另一个函数更快地替换,这也不一定会对应用程序的运行时产生任何影响。您需要了解代码中哪些部分实际上是一个潜在的问题,并将重点放在优化这些部分上。注意 O notation 您的函数,以及调用它们的频率。为了识别需要优化的部分,分析器可以提供很好的帮助。

    This question 有一些有趣的观点来解释为什么在实际需要优化之前不应该优化。

        2
  •  7
  •   Eric Lippert    16 年前

    当然。我们的工作是:

    • 决定旅程何时结束,开始旅程。设定有意义的、以客户为中心的、现实的绩效目标。(用于速度和资源消耗。)

    • 经常仔细测试代码,看看是否达到了性能目标。

    • 如果你达到了你的绩效目标,不要担心绩效。一切都很好。担心错误、健壮性或特性。

    • 如果你没有达到你的性能目标,运行一个分析器。使用它来识别什么是最坏的违规代码。修复最糟糕的代码是有意义的;制造一些已经非常快并且稍微快一点和轻一点的代码并不能解决性能问题。

    • 重写慢代码,使其更具性能。(这是困难的一点。)确保你测试它,以确保它确实是更好的。

    • 如果尽管你尽了最大的努力,你还是做不好,要么重新评估你的目标是什么,要么取消项目,把你的时间花在你能成功的事情上。

    一直重复这个过程,直到你发送了一些东西。

        3
  •  5
  •   bobber205    16 年前

    打字很快。

        4
  •  5
  •   Richard Ev    16 年前

    基本上先实现,然后测试在哪里进行优化。

    如果您使用的是Visual Studio专业版,则可以使用Analyze->启动性能向导来分析方法性能。我不确定其他版本是否支持此功能,但是,还有一些商业/免费的应用程序…查找探查器(请参见 here 对于一个列表)。

        5
  •  3
  •   Community Mohan Dere    9 年前

    你应该看看 hidden features of c# 这篇文章涵盖了C发展中最优秀的实践。

        6
  •  3
  •   fastcodejava    16 年前

    关于这件事,你可以得到很多建议。但要注意: 过早的优化是万恶之源。

        7
  •  3
  •   the_mandrill    16 年前

    瞄准第一 正确性 下一个 清晰 只有那时 性能 .

    俗话说,

    “没人在乎你计算错误答案的速度有多快。”

    (但在实际层面上,使用分析器)

        8
  •  2
  •   Ken    16 年前

    如果一种方法总是比另一种方法快,那么它们就不会费心包括速度较慢的方法。

    在性能方面唯一不变的是需要进行分析。一切都是这样的。

        9
  •  2
  •   Ric Tokyo    16 年前

    如果你有一个剖析者,它会帮助你,一些甚至会给你很好的提示。

    例子: ANTS Profiler

    通常,您会发现减少创建字符串的次数是可以提高性能的主要方法。

    而且不需要手动处理垃圾收集器(除非你真的知道自己在做什么)

    此链接用于 Java design patterns 这太牵强了,不要太在意Java这个词,你可以用他们所教的东西来开发任何语言。

    问题是,如果你想知道什么时候做什么,使用什么方法等等,设计模式就是你所说的。

    我希望在我的职业生涯中有人早点向我指出这一点。

        10
  •  1
  •   Gabe Timothy Khouri    16 年前

    一般建议:

    • 尽量使用最少的循环
    • 尽可能将代码移出循环
    • 避免在循环中复制内容(如字符串)
    • 避免在循环中创建对象
    • 在有必要的情况下缓存(通常是需要花费大量时间的小对象),但请确保缓存具有良好的处置策略,否则会导致内存泄漏。
        11
  •  1
  •   Jojo Sardez    16 年前

    可以在本机模式下编译程序以提高运行时性能。

        12
  •  0
  •   Eugene    16 年前

    你自己解决这个问题的一个方法就是拥有一个控制台应用程序,在这个应用程序中,你试着对彼此运行离散的代码片段并对它们进行计时。喜欢 here .