关于TryCatch捕获错误的简单性能测试

发表于:2013-3-15 10:47

字体: | 上一篇 | 下一篇 | 我要投稿

 作者:YellowBlue    来源:51Testing软件测试网采编

分享:

  一直以来都很好奇TryCatch捕获一个错误会对性能有多大的损耗,有的人说差异是倍数级的,有的人说差异不大,今天忽然心血来潮就自己写了个Demo测试,因为曾经自己写过一篇文章提到不要滥用TryCatch来捕获已知的错误,却没有用事例佐证过,当然结果也是如预期一般。

  1. static void Main(string[] args)  
  2.         {  
  3.             int loopCount=100;  
  4.             List<string> strList = new List<string>();  
  5.             for (int i = 0; i < loopCount; i++) {  
  6.                 strList.Add("str" + i);  
  7.             }  
  8.             int intTemp = 0;  
  9.             Stopwatch sw2 = new Stopwatch();  
  10.             sw2.Start();  
  11.             foreach (string str in strList)  
  12.             {  
  13.                 Console.WriteLine("不用TryCatch");  
  14.                 int.TryParse(str, out intTemp);  
  15.             }  
  16.             sw2.Stop();  
  17.           
  18.             Stopwatch sw = new Stopwatch();  
  19.             sw.Start();  
  20.             foreach (string str in strList)  
  21.             {  
  22.                 try 
  23.                 {  
  24.                     Console.WriteLine("这是TryCatch");  
  25.                     intTemp = Convert.ToInt32(str);  
  26.                      
  27.                 }  
  28.                 catch (Exception ex)  
  29.                 {  
  30.                     //异常不做处理 
  31.                 }  
  32.             }  
  33.             sw.Stop();  
  34.             Console.WriteLine("循环次数" + loopCount + "不用TryCatch耗时:" + sw2.ElapsedMilliseconds);  
  35.             Console.WriteLine("循环次数" + loopCount + "这是TryCatch耗时:" + sw.ElapsedMilliseconds);  
  36.             Console.WriteLine("按回车键退出" );  
  37.             Console.ReadLine();  
  38.         }

  为了直观地看到每一次转换是否进行了,所以在每一次转换前都输出一次是否用到TryCatch,当loopCount为100时运行结果如下:

21/212>
《2023软件测试行业现状调查报告》独家发布~

关注51Testing

联系我们

快捷面板 站点地图 联系我们 广告服务 关于我们 站长统计 发展历程

法律顾问:上海兰迪律师事务所 项棋律师
版权所有 上海博为峰软件技术股份有限公司 Copyright©51testing.com 2003-2024
投诉及意见反馈:webmaster@51testing.com; 业务联系:service@51testing.com 021-64471599-8017

沪ICP备05003035号

沪公网安备 31010102002173号