在一个高性能的C#程序中(性能是no1的关注点),对代码的牺牲是什么?
例如,异常处理将如何改变(抛出的异常更少/捕获的异常数量相同?)?
我问道,就像我过去在一家监控公司工作一样,那里编写了一个收集器。
谢谢
发布于 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
发布于 2012-03-19 19:46:59
您可以自己测量性能,并查看异常处理在多大程度上降低了代码的速度。通常,如果抛出一个异常,这是非常浪费的,但是如果没有抛出异常,try ... catch
只会稍微减慢代码的速度。
另一点: Linq比简单的迭代慢。
发布于 2012-03-19 19:51:05
只有在异常情况下才应该抛出异常。它们不应用于流量控制。一个好的目标是能够在正常使用的调试器下运行应用程序,并且不应引发异常。
如果是这样的话,在一个高性能的应用程序中,如果异常确实是异常的,那么异常的成本就不应该成为一个大问题。
https://stackoverflow.com/questions/9769540
复制相似问题