我希望得到真正使用 C# 进行实时编程或真正了解该语言内部原理的人的回复。
我知道异常不应该用于处理正常处理,而只能用于检测错误情况。关于这个话题有很多讨论。
我想知道仅仅使用 try/catch 块是否会导致运行时间变慢(除非程序必须结束,否则它永远不会捕获异常)。 try/catch 块位于必须重复调用的函数内部。我怀疑只有最小的成本。
成本可以用 CPU 周期或其他任务(与浮点乘法相同的成本)或其他方式来量化吗?
我们在Windows XP下使用Microsoft C#.Net 3.5。
.NET 异常的开销成本非常非常低,除非抛出异常。使用 try/catch 块对性能的影响非常小。我发现即使在非常快、紧密的循环中,对异常处理的到位也几乎没有影响。
然而,.NET 中的异常在抛出时非常昂贵。如果你使用它们,它们往往比许多其他语言对性能产生更大的影响。这是由于创建异常时收集的完整堆栈信息等造成的。
这与其他一些语言相反,例如 python,异常处理的成本较高,但抛出实际上相当高效。
但是,如果您担心,我建议您分析一下您的日常习惯,并亲自测试一下。这是我在进行大量性能分析后的经验。在您自己的代码库中进行测量是无可替代的。
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)