编程文汇

C#中Exception的性能开销


#1
  • try catch finally 语句本身在编译后,只不过是条件比较、流程跳转,不存在多少额外开销。
  • 在异常发生、或者throw new xxx,只要实际抛出了异常,就会产生不小的开销,因为这时要获取调用堆栈,估计会设计大量的反射API调用,这个开销很高。
  • 所以,如果系统中没有大量发生异常(要注意异常被try catch吃掉、被隐藏的情形,只要出现了异常,开销就逃不掉),就不会对系统运行产生影响。