Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/257.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 编写高性能代码和异常处理_C# - Fatal编程技术网

C# 编写高性能代码和异常处理

C# 编写高性能代码和异常处理,c#,C#,在高性能C#程序中(性能是首要考虑的问题),会对代码做出什么牺牲 例如,异常处理将如何改变(抛出的异常更少/捕获的异常数量相同?) 我问,因为我以前在一家监控公司工作,那里写着一个收集器 谢谢您可以自己测量性能,看看异常处理会让代码慢多少。一般来说,如果抛出异常,这是非常浪费的,但如果没有抛出异常,try。。。catch只会使代码慢一点 另一点:Linq比简单的迭代要慢。您可以自己测量性能,看看异常处理会使代码慢多少。一般来说,如果抛出异常,这是非常浪费的,但如果没有抛出异常,try。。。cat

在高性能C#程序中(性能是首要考虑的问题),会对代码做出什么牺牲

例如,异常处理将如何改变(抛出的异常更少/捕获的异常数量相同?)

我问,因为我以前在一家监控公司工作,那里写着一个收集器


谢谢

您可以自己测量性能,看看异常处理会让代码慢多少。一般来说,如果抛出异常,这是非常浪费的,但如果没有抛出异常,
try。。。catch
只会使代码慢一点


另一点:Linq比简单的迭代要慢。

您可以自己测量性能,看看异常处理会使代码慢多少。一般来说,如果抛出异常,这是非常浪费的,但如果没有抛出异常,
try。。。catch
只会使代码慢一点


另一点:Linq比简单的迭代要慢。

通常只有在严格需要时才应该
抛出异常,因为它可能导致性能下降
那么,异常处理的替代方案是什么

您可以编写代码来检查每个方法的输入值和返回值,并将返回值传递回调用方


通常,您应该
仅在严格需要时抛出
异常,因为它可能导致性能下降 那么,异常处理的替代方案是什么

您可以编写代码来检查每个方法的输入值和返回值,并将返回值传递回调用方


异常处理速度很慢。默认情况下,
Exception
实例,顾名思义,就是一个异常。 但是,如果您希望它们经常发生,您可以决定抛出较少的
Exception
对象,并以另一种方式处理逻辑异常。换言之,它们是意料之中的


如果它们实际上是意外的,您可以尝试在堆栈中更早地处理它们。解决方法是使用
bool
enum
retVals。重新触发异常会导致性能损失。

异常处理速度缓慢。默认情况下,
Exception
实例,顾名思义,就是一个异常。 但是,如果您希望它们经常发生,您可以决定抛出较少的
Exception
对象,并以另一种方式处理逻辑异常。换言之,它们是意料之中的


如果它们实际上是意外的,您可以尝试在堆栈中更早地处理它们。解决方法是使用
bool
enum
retVals。重新引发异常会导致性能损失。

只有在异常情况下才会引发异常。它们不应用于流量控制。一个好的目标是能够在调试器下正常运行应用程序,并且不应抛出异常


如果是这样的话,在高性能应用程序中,如果异常是真正的异常,那么异常的成本就不应该那么重要。

只有在异常情况下才会抛出异常。它们不应用于流量控制。一个好的目标是能够在调试器下正常运行应用程序,并且不应抛出异常


如果是这样的话,在一个高性能的应用程序中,如果异常是真正的异常,那么异常的成本就不应该那么重要了。

异常是处理异常情况的最佳方法。如果需要某些条件,则使用类似于
If
的条件语句检查它


除了这些通用规则,您愿意为性能牺牲多少可维护性?您可以始终在汇编程序中编写代码。

异常
是处理异常情况的最佳方法。如果需要某些条件,则使用类似于
If
的条件语句检查它


除了这些通用规则,您愿意为性能牺牲多少可维护性?您可以始终使用汇编语言编写代码。

“性能是首要问题”性能怎么可能成为首要问题?难道你的程序实际上做了一些有用和有价值的事情不是更重要吗?否则,为什么不写
while(true){}
就到此为止呢?我明白你的意思,但考虑到要收集的数据量等,这只是优先级设置…“性能是首要考虑因素”性能怎么可能成为首要考虑因素?难道你的程序实际上做了一些有用和有价值的事情不是更重要吗?否则,为什么不写
while(true){}
,就到此为止呢?我明白你的意思,但考虑到要收集的数据量等,这只是优先级设置。。。