C# 编写高性能代码和异常处理
在高性能C#程序中(性能是首要考虑的问题),会对代码做出什么牺牲 例如,异常处理将如何改变(抛出的异常更少/捕获的异常数量相同?) 我问,因为我以前在一家监控公司工作,那里写着一个收集器C# 编写高性能代码和异常处理,c#,C#,在高性能C#程序中(性能是首要考虑的问题),会对代码做出什么牺牲 例如,异常处理将如何改变(抛出的异常更少/捕获的异常数量相同?) 我问,因为我以前在一家监控公司工作,那里写着一个收集器 谢谢您可以自己测量性能,看看异常处理会让代码慢多少。一般来说,如果抛出异常,这是非常浪费的,但如果没有抛出异常,try。。。catch只会使代码慢一点 另一点:Linq比简单的迭代要慢。您可以自己测量性能,看看异常处理会使代码慢多少。一般来说,如果抛出异常,这是非常浪费的,但如果没有抛出异常,try。。。cat
谢谢您可以自己测量性能,看看异常处理会让代码慢多少。一般来说,如果抛出异常,这是非常浪费的,但如果没有抛出异常,
try。。。catch
只会使代码慢一点
另一点:Linq比简单的迭代要慢。您可以自己测量性能,看看异常处理会使代码慢多少。一般来说,如果抛出异常,这是非常浪费的,但如果没有抛出异常,
try。。。catch
只会使代码慢一点
另一点:Linq比简单的迭代要慢。通常只有在严格需要时才应该
抛出异常,因为它可能导致性能下降
那么,异常处理的替代方案是什么
您可以编写代码来检查每个方法的输入值和返回值,并将返回值传递回调用方
通常,您应该仅在严格需要时抛出
异常,因为它可能导致性能下降
那么,异常处理的替代方案是什么
您可以编写代码来检查每个方法的输入值和返回值,并将返回值传递回调用方
异常处理速度很慢。默认情况下,Exception
实例,顾名思义,就是一个异常。
但是,如果您希望它们经常发生,您可以决定抛出较少的Exception
对象,并以另一种方式处理逻辑异常。换言之,它们是意料之中的
如果它们实际上是意外的,您可以尝试在堆栈中更早地处理它们。解决方法是使用bool
或enum
retVals。重新触发异常会导致性能损失。异常处理速度缓慢。默认情况下,Exception
实例,顾名思义,就是一个异常。
但是,如果您希望它们经常发生,您可以决定抛出较少的Exception
对象,并以另一种方式处理逻辑异常。换言之,它们是意料之中的
如果它们实际上是意外的,您可以尝试在堆栈中更早地处理它们。解决方法是使用bool
或enum
retVals。重新引发异常会导致性能损失。只有在异常情况下才会引发异常。它们不应用于流量控制。一个好的目标是能够在调试器下正常运行应用程序,并且不应抛出异常
如果是这样的话,在高性能应用程序中,如果异常是真正的异常,那么异常的成本就不应该那么重要。只有在异常情况下才会抛出异常。它们不应用于流量控制。一个好的目标是能够在调试器下正常运行应用程序,并且不应抛出异常
如果是这样的话,在一个高性能的应用程序中,如果异常是真正的异常,那么异常的成本就不应该那么重要了。异常是处理异常情况的最佳方法。如果需要某些条件,则使用类似于If
的条件语句检查它
除了这些通用规则,您愿意为性能牺牲多少可维护性?您可以始终在汇编程序中编写代码。异常
是处理异常情况的最佳方法。如果需要某些条件,则使用类似于If
的条件语句检查它
除了这些通用规则,您愿意为性能牺牲多少可维护性?您可以始终使用汇编语言编写代码。“性能是首要问题”性能怎么可能成为首要问题?难道你的程序实际上做了一些有用和有价值的事情不是更重要吗?否则,为什么不写while(true){}
就到此为止呢?我明白你的意思,但考虑到要收集的数据量等,这只是优先级设置…“性能是首要考虑因素”性能怎么可能成为首要考虑因素?难道你的程序实际上做了一些有用和有价值的事情不是更重要吗?否则,为什么不写while(true){}
,就到此为止呢?我明白你的意思,但考虑到要收集的数据量等,这只是优先级设置。。。