在企业级开发中使用Try...Catch...会影响效率吗?结果很意外,但是本人木有经过测试
来源:互联网 发布:截图软件排行 编辑:程序博客网 时间:2024/06/04 18:44
记得不久之前,公司一同事曾经说过:“如果是Winform开发,由于程序是在本地,使用try。。。catch不会有太大性能问题,可是如果是在web服务器上的话,不推荐使用try。。。catch。。。,因为这对于web服务器的性能会有很大影响”。当时我对此一直心存疑问,由于我没有做过测 试,不知道到底是不是这样?所以当时我没有表态。首先我通过Google进行了搜索,有同样想法或同样疑问的人不在少数,表达个人观点的人什么样的都有。 但是从我个人主观上推断,主观推断的结论是:try...catch在没有抛出异常时不影响程序性能,而且即便影响性能,也不见得会成为性能瓶颈。
究竟结果怎样?还是动手写代码做下测试吧。
组次
没有使用Try…Catch…的时间(毫秒)
使用Try…Catch…但不出现异常所用的时间(毫秒)
使用Try…Catch…出现异常所用的时间(毫秒)
1
6
3
4
2
11
5
6
3
4
3
6
4
8
10
4
5
6
3
6
6
8
6
4
7
9
5
9
8
5
5
5
9
7
6
10
10
5
4
8
平均时间
6.9
5
6.2
通过观察测试结果,意料之中又参杂着些意外。
意外的是,使用try。。。catch不出现异常跟使用try。。。catch。。。出现异常的平均执行时间比没有使用try。。。catch。。。的平均执行时间要短。这不禁让我想起了很久之前发生的一幕类似的场景:
我一直以为操作SQLServer时使用事务会比没有使用事务要慢很多,可是经过测试,使用事务比没有使用事务要快很多,而且居然不是一个数量级的。因此,使用事务就成为了提升数据库访问性能的一种手段了。
结论:
- 不论是使用c#进行什么开发,使用try。。。catch都不会影响性能,反倒会略微提升性能。
- try。。。catch不仅要在开发中使用,而且在进行公共类的公共方法时必须使用,否则出现了异常,就会影响共同调用此方法的所有用户。
- 如果为了所谓的性能,而不去处理程序中的异常的话,原则上就不能通过(讲原则)。
我使用Vs2008+sp1开发环境简单做了个Demo,有兴趣的朋友可以下载代码自己测试一下。
- 在企业级开发中使用Try...Catch...会影响效率吗?结果很意外,但是本人木有经过测试
- 在企业级开发中使用Try...Catch...会影响效率吗?
- 在企业级开发中使用Try...Catch...会影响效率吗?
- C#中使用try...catch...是否会影响程序性能
- C#中使用try...catch...是否会影响程序性能
- C#中使用try...catch...是否会影响程序性能
- Try-Catch真的会影响程序性能吗
- Try-Catch真的会影响程序性能吗
- Try-Catch真的会影响程序性能吗
- Try-Catch真的会影响程序性能吗
- 在try catch finally 中有return时的返回结果
- try catch会影响性能么
- try-catch影响性能吗?
- 在 Transact-SQL 中使用 TRY...CATCH
- 在Sql中使用Try Catch
- Try Catch对效能影响的测试
- RuntimeException的特殊情况&&[C++] 有人会在程序中try catch吗?&&什么样的问题需要用try catch语句执行
- 在ios开发中使用 try 和 catch 来捕获错误。
- poj-1836-Alignment-dp-最长最短子序列问题
- php安装mcrypt模块
- JS对象之Table表格对象
- ViewSwitcher实现程序列表分屏和动画效果
- ios开发之ASIHttpRequest-创建和执行request
- 在企业级开发中使用Try...Catch...会影响效率吗?结果很意外,但是本人木有经过测试
- 修改选中第一个app收获
- 转ios icon及默认图片等
- [AndEngine学习教程] 第2节 使用AndEngine.jar创建工程
- DB-link创建语句
- 孙多洋《融资智慧》投融资培训
- cocos3d Programming Guide
- Nsight2.0安装及单机调试(CUDA4.0)设置经验
- 网页设计的极简主义:少即是多