Hol*_*roe 2 .net c# performance exception
可能重复:
'尝试'的性能成本
我在MSDN的 "处理例外的最佳实践"中偶然发现了这句话:
"使用异常处理更好,因为在正常情况下执行的代码更少"
在是否应该在调用方法之前检查对象的状态或者只是调用方法并捕获异常的上下文中.上述建议是在异常事件很少发生时.
假设属性检查不会意味着昂贵的计算,而只是返回一个状态值,与非属性检查相比,非抛出情况下try/catch块的执行成本有多便宜?
我想知道这个建议,因为即使try/catch是免费的或接近免费的,被调用的方法在很多情况下会通过它自己做一堆检查.
.NET中的例外情况非常便宜,除非它们被提出.一旦你提出异常,有效成本就会上升很多.
话虽这么说,我强烈建议编程到这里最易维护的解决方案,并且如果,并且只有在测量后它被证明是一个问题时才会担心性能.
刚刚返回状态的属性get方法被优化为字段查找,并且几乎是单个操作 - 任何东西通常都会比以后慢.但是,我怀疑异常处理会对你的整体速度产生任何明显的影响,除非它处于非常非常紧凑的循环中 - 在这种情况下,整体性能可能不会比你为避免异常处理而引入的检查更糟糕.
| 归档时间: |
|
| 查看次数: |
492 次 |
| 最近记录: |