私は単純なウイルス スキャナーを開発中で、次の機能の速度向上を探していました。
Public Function FindAInB(ByRef byteArrayA() As Byte, ByRef byteArrayB() As Byte) As Integer
Dim startmatch As Integer = -1
Dim offsetA As Integer = 0
Dim offsetB As Integer = 0
For offsetB = 0 To byteArrayB.Length - 1
If byteArrayA(offsetA) = byteArrayB(offsetB) Then
If startmatch = -1 AndAlso offsetB < byteArrayB.Length - 8 Then
startmatch = offsetB
End If
offsetA += 1
If offsetA = byteArrayA.Length Then
Exit For
End If
Else
offsetA = 0
startmatch = -1
End If
Next
Return startmatch
End Function
選択したファイルのバイトで約 7800 バイトの配列を検索しているため、超高速にする必要があります。説明するのは難しいですが、上記のコードに代わるもの、またはそれを高速化する方法はありますか?
前もって感謝します!