我想从别人用C#或谁真正理解语言的内部究竟是谁做实时编程的响应。
我知道,异常不应该被用来处理正常处理,但只能检测到错误条件。 有足够的讨论这个话题。
我想知道是否有从仅仅拥有代替try / catch块(从未捕捉到一个例外,除非该计划将无论如何都要结束)的任何运行时慢了下来。 在try / catch块是一个必须反复调用函数中。 我怀疑只有最低的成本。
可以在成本CPU周期,或其他任务(成本相同浮点乘法),或另一种方式来量化?
我们使用微软的C#.NET 3.5在Windows XP。
.NET异常有一个非常,非常低的开销,除非它们被抛出。 有代替try / catch块将有一个很小的性能影响。 我发现几乎没有影响,即使是在非常快的,紧密的循环,在地方有异常处理。
然而,在.NET的例外是当他们抛出非常昂贵。 他们往往是对性能产生很大影响大,如果你把它们比许多其他语言。 这是由于在创建异常时收集的完整的堆栈信息,等等。
这是相反的行为,其他一些语言,比如Python,在异常处理具有较高的性价比,但投掷其实是相当高性能的。
不过,如果你担心,我会建议您分析您的常规,并测试它自己。 这一直是相当多的性能分析之后我的经验。 没有替代在自己的代码库进行测量。