-1
所以我編寫了一個字符串搜索函數,並以4結尾,因爲它們需要前進或後退,或者包含或排除。然後,我需要更多的功能,如忽略某些特定的事情和等等等等。我認爲用可選的布爾參數來做一個稍微大一點的函數要比維護否則會需要的8+函數更容易。基於可選參數的vb.net函數分支性能
雖然這是主要的主力功能,但是性能很重要,所以我設計了一個簡單的測試來了解這樣做會損失多少。代碼如下:
main window:
Private Sub testbutton_Click(sender As Object, e As RoutedEventArgs) Handles testbutton.Click
Dim rand As New Random
Dim ret As Integer
Dim count As Integer = 100000000
Dim t As Integer = Environment.TickCount
For i = 0 To count
ret = superfunction(rand.Next, False)
Next
t = Environment.TickCount - t
Dim t2 As Integer = Environment.TickCount
For i = 0 To count
ret = simplefunctionNeg(rand.Next)
Next
t2 = Environment.TickCount - t2
MsgBox(t & " " & t2)
End Sub
The functions:
Public Module testoptionality
Public Function superfunction(a As Integer, Optional b As Boolean = False) As Integer
If b Then
Return a
Else
Return -a
End If
End Function
Public Function simpleFunctionPos(a As Integer)
Return a
End Function
Public Function simplefunctionNeg(a As Integer)
Return -a
End Function
End Module
所以非常簡單。奇怪的部分是超級函數比任何一個簡單函數都快兩倍(我的測試結果是「1076 2122」)。這是沒有道理的..我試圖尋找我可能做錯了,但我不能看到它。有人可以解釋這一點嗎?
facepalm,當然! :D仍然,結果令人鼓舞,足以沿着選擇路線走下去。 –