您的位置:首页 > 其它

Try Catch到底影响了程序多少效率?

2010-04-16 18:39 399 查看
Try Catch相信大家都用过吧!其实我也经常用,由于最近在做sharepoint相关项目时,在调用它的对象方法的时候不是返回null,而是抛出一个异常信息,相对的项目中就有大量的try catch了!经常听到和看到论坛上Try很影响效率!久而久之,自己也这样认为!今天决定到网上搜一搜他的相关文章!

下面引用 深山老林 的一篇文章:

记得不久之前,公司一同事曾经说过:“如果是Winform开发,由于程序是在本地,使用try。。。catch不会有太大性能问题,可是如果是在 web服务器上的话,不推荐使用try。。。catch。。。,因为这对于web服务器的性能会有很大影响”。当时我对此一直心存疑问,由于我没有做过测试,不知道到底是不是这样?所以当时我没有表态。首先我通过Google进行了搜索,有同样想法或同样疑问的人不在少数,表达个人观点的人什么样的都有。但是从我个人主观上推断,主观推断的结论是:try...catch在没有抛出异常时不影响程序性能,而且即便影响性能,也不见得会成为性能瓶颈。 究竟结果怎样?还是动手写代码做下测试吧。 Try...Catch性能测试代码 意外的是,使用try。。。catch不出现异常跟使用try。。。catch。。。出现异常的平均执行时间比没有使用 try。。。catch。。。的平均执行时间要短。这不禁让我想起了很久之前发生的一幕类似的场景: 我一直以为操作SQLServer时使用事务会比没有使用事务要慢很多,可是经过测试,使用事务比没有使用事务要快很多,而且居然不是一个数量级的。因此,使用事务就成为了提升数据库访问性能的一种手段了。 结论: 不论是使用c#进行什么开发,使用try。。。catch都不会影响性能,反倒会略微提升性能。 try。。。catch不仅要在开发中使用,而且在进行公共类的公共方法时必须使用,否则出现了异常,就会影响共同调用此方法的所有用户。 如果为了所谓的性能,而不去处理程序中的异常的话,原则上就不能通过(讲原则)。
我使用 Vs2008+sp1开发环境简单做了个Demo,有兴趣的朋友可以下载代码自己测试一下。 事件反思: 如果能够再做一个不使用try。。。catch出现异常的测试,应该对这次的结论会更加的有帮助。可是转一想,自己真是糊涂了,如果出现异常而不去处理的话,根本就没有办法测试代码的执行时间的。看看时间也不早了,今天还得上班呢,不管还会不会再失眠,必须强迫自己关掉心爱的电脑,躺在床上了。 这么简单的一个问题,却很少有人能够做测试,通常都是主观的表达自己的观点,然后就投入了所谓的“企业级开发”。如果我在博客园首页提出这样的问题,会不会出现各种各样的人出来争锋相对、各持己见、甚至相互谩骂,认为别人的想法太幼稚,而自己的想法才是真理呢?我想说不定会,至少可能性是有的。 以后再遇到针锋相对、犹豫不决的事情,还是希望在没有亲自调查、测试之前,不要太过自信的发表言论吧,如果拿不准但必须要表态的话,至少应该加上“我觉得”、“个人认为”。。。。。。
作者:深山老林
出处:http://wlb.cnblogs.com/
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。 原文地址:/article/4867619.html 嘿嘿,记得前端时间网上流行的歌曲: 死了都要try.
歌名:死了都要try. 作词 作曲 演唱 某某程序员 死了都要try!不catch我不痛快!程序毁灭throw还在!
把每天,当作是程序来更改,一改一天,累到泪水都掉下来,
不理会,老板是好还是坏,只要有工资,来还贷.
改,不是需求做的太坏,那是SB客户想要什么,自己都不明白.
忍受现在,自己一生的还不完的贷,很多模块,不能完成,我还得改.
死了都要try!不catch我不痛快!程序毁灭throw还在!
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: