代码之家  ›  专栏  ›  技术社区  ›  Brent Arias

从try块“返回”的性能

  •  5
  • Brent Arias  · 技术社区  · 14 年前

    如果你过早地退出一个尝试块(例如执行一个返回语句),就像在抛出异常一样,Windows框上的异常处理(至少对于C++)会受到性能的影响。

    但是C呢?无论是通过RETURN语句还是BREAK语句,从try块过早返回是否会影响性能?

    3 回复  |  直到 14 年前
        1
  •  7
  •   Jon Skeet    14 年前

    如果有 性能很好,很小。当然没什么 喜欢 与捕获异常相同。(即使这也不像很多人想的那么糟糕。)

    据我所知,从try块返回的性能可以忽略不计。它在你的应用程序中很重要的概率基本上是0。只需编写最易读的代码,然后对应用程序进行基准测试/分析——这将是获得良好性能的更好方法,而不是尝试二次猜测这类事情。

        2
  •  3
  •   Guffa    14 年前

    不,没有任何惩罚,因为过早退出 try 块。

    我对在try块中间返回的方法和在返回前从try块自然退出的方法进行了不同的调用,并且没有可测量的差异。

    有一点开销 尝试 块(约0.000002 ms),但中间退出没有额外开销。

        3
  •  -1
  •   TomTom    14 年前

    所有异常处理都会带来很小的性能开销——对于现有的任何try/catch,总是需要做额外的工作。

    问题不在于它是否存在,而在于它是否相关。如果我需要抓住一个例外,我需要。对性能没有争议。