优化TryCatch性能

Author: 杨宁  From:Internet


        我们知道使用TryCatch,会引起轻微的性能损失。为了避免这个损失,可以将TryCatch中的语句保持的尽量的短。或者将之间的语句写到一个Sub中。但是调用一个子程序也会引起性能损失。
        在下面的例子中说明:调用一个子程序,已经可以带来一定的性能优势。同时也说明TryCatch引起的性能损失是微不足道的。
 
      Private Sub TestTry1()
          Dim k As Long = 0
          Try
              Do
                  TestSub()‘- Or replace use sub statements
 
                  k  = 1
                  If k = 1000000 Then Return
              Loop
          Catch ex As Exception
 
          End Try
      End Sub
      Private Sub TestSub()
          Dim i As Double
          Dim j As Double
          i = 1345413433
          j = 23413
          i = i  j
          i = i * j
          i = i / j
          i = i - j
          i = 1345413433
          j = 23413
          i = i  j
          i = i * j
          i = i / j
          i = i - j
          i = 1345413433
          j = 23413
          i = i  j
          i = i * j
          i = i / j
          i = i - j
          i = 1345413433
          j = 23413
          i = i  j
          i = i * j
          i = i / j
          i = i - j
          i = 1345413433
          j = 23413
          i = i  j
          i = i * j
          i = i / j
          i = i - j
          i = 1345413433
          j = 23413
          i = i  j
          i = i * j
          i = i / j
          i = i - j
          i = 1345413433
          j = 23413
          i = i  j
          i = i * j
          i = i / j
          i = i - j
          i = 1345413433
          j = 23413
          i = i  j
          i = i * j
          i = i / j
          i = i - j
          i = 1345413433
          j = 23413
          i = i  j
          i = i * j
          i = i / j
          i = i - j
          i = 1345413433
          j = 23413
          i = i  j
          i = i * j
          i = i / j
          i = i - j
          i = 1345413433
          j = 23413
          i = i  j
          i = i * j
          i = i / j
          i = i - j
 
      End Sub
 
  Not to use Sub:
  Start: 02:32:03 281814
  End:  02:32:04 047425 = 0.765611
  Start: 02:32:05 156778
  End:  02:32:06 000512 = 0.843734
  Start: 02:32:08 625462
  End:  02:32:09 375447 = 0.749985
 
  Use Sub:
  Start: 02:32:54 358959
  End:  02:32:55 124569 = 0.765610
  Start: 02:32:55 937053
  End:  02:32:56 671414 = 0.734361
  Start: 02:32:57 437025
  End:  02:32:58 171385 = 0.734360

 感谢原创者的辛勤劳动,希望对您有所帮助,转载请注明原出处。
 您可能对 [C#] 的这些文章也感兴趣:

winform 未能找到任何适合于指定的区域性或非特定区域性的资源
用C#制作一个目录选择对话框
利用C#远程存取Access数据库
C#3.0 新特性速览(2)
C#2.0新特性探究之模拟泛型和内置算法
[C#学习]在多线程中如何调用Winform
C#实现遗传算法,模拟花朵的进化
利用C#的FileStream分段复制大文件
NET连接池救生员
让窗体飘动起来--C#中Timer组件用法