优化TryCatch性能

发表于:2007-06-30来源:作者:点击数: 标签:
我们知道使用TryCatch,会引起轻微的 性能 损失。 为了避免这个损失,可以将TryCatch中的语句保持的尽量的短。 或者将之间的语句写到一个Sub中。 但是调用一个子程序也会引起性能损失。 在下面的例子中说明:调用一个子程序,已经可以带来一定的性能优势。
     我们知道使用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
  
  

原文转自:http://www.ltesting.net