그래서 문자열 검색 기능을 코딩 했으므로 앞으로 또는 뒤로 이동하거나 포괄적이거나 배타적 일 필요가 있었으므로 결국 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
매우 간단합니다. 기묘한 부분은 superfunction이 단순한 함수 중 하나보다 지속적으로 두 배 빠릅니다 (내 테스트 결과는 "1076 2122"입니다). 이것은 말이 안된다. 나는 내가 잘못했을지도 모르는 것을 찾고자했지만 나는 그것을 볼 수 없다. 아무도 이것을 설명 할 수 있습니까?
facepalm, 물론! : D 조 여전히 결과는 옵션 노선을 따라 가기에 충분합니다. –