首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >编写高性能代码和异常处理

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

Stack Overflow用户
提问于 2012-03-19 19:44:13
回答 5查看 424关注 0票数 0

在一个高性能的C#程序中(性能是no1的关注点),对代码的牺牲是什么?

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

我问道,就像我过去在一家监控公司工作一样,那里编写了一个收集器。

谢谢

EN

回答 5

Stack Overflow用户

回答已采纳

发布于 2012-03-19 19:48:59

通常,你应该只在严格需要的时候Throw异常,因为这可能会导致性能下降,那么异常处理的替代方案是什么呢?

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

http://codebetter.com/raymondlewallen/2004/12/13/performance-issues-with-exception-handling/

http://www.codeproject.com/Articles/11265/Performance-implications-of-Exceptions-in-NET

票数 1
EN

Stack Overflow用户

发布于 2012-03-19 19:46:59

您可以自己测量性能,并查看异常处理在多大程度上降低了代码的速度。通常,如果抛出一个异常,这是非常浪费的,但是如果没有抛出异常,try ... catch只会稍微减慢代码的速度。

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

票数 1
EN

Stack Overflow用户

发布于 2012-03-19 19:51:05

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

如果是这样的话,在一个高性能的应用程序中,如果异常确实是异常的,那么异常的成本就不应该成为一个大问题。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9769540

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档