Qual é a maneira mais rápida de comparar matrizes de dois bytes?

Estou tentando comparar duas longas derivações no VB.NET e encontrei um problema. Comparar dois arquivos de 50 megabytes leva quase dois minutos, por isso estou claramente fazendo algo errado. Estou em uma máquina x64 com muita memória, para que não haja problemas. Aqui está o código que estou usando no momento e gostaria de mudar.

_Bytes eitem.Bytes são as duas matrizes diferentes para comparar e já têm o mesmo compriment

For Each B In item.Bytes
   If B <> _Bytes(I) Then
        Mismatch = True
        Exit For
   End If
   I += 1
Next

Preciso comparar o mais rápido possível os arquivos com potencial de centenas de megabytes e até um gigabyte ou dois. Alguma sugestão ou algoritmo capaz de fazer isso mais rapidamente?

Item.bytes é um objeto retirado do banco de dados / sistema de arquivos retornado para comparação, porque seu comprimento de bytes corresponde ao item que o usuário deseja adicionar. Comparando as duas matrizes, posso determinar se o usuário adicionou algo novo ao banco de dados; caso contrário, posso apenas mapeá-las para o outro arquivo e não desperdiçar espaço na unidade de disco rígid

[Atualizar

Converti as matrizes para variáveis locais de Byte () e, em seguida, fiz a mesma comparação, o mesmo código e funcionou em um segundo (ainda tenho que fazer o benchmark e compará-lo com outros), mas se você fizer a mesma coisa com variáveis locais e usar uma matriz genérica, torna-se muito mais lento. Não sei por que, mas isso gera muito mais perguntas sobre o uso de matrizes.

questionAnswers(6)

yourAnswerToTheQuestion