Как WinHex так быстро открывает бинарники??
Чёт решил сделать HEX-редактор для себя, со своими наворотами. На грядущее.
Короче он у меня капец тяжело поднимает файлы. Как сделать, чтобы он за секунду файлы открывал, ну или хотя бы за пять.
Код VB.Net:
Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
If My.Application.CommandLineArgs.Count > 0 Then
Dim F = My.Application.CommandLineArgs.Item(0)
Dim HexCode As String = ""
Dim iByte As String = ""
Dim SPorENT As String = ""
Dim n As Byte = 0
For Each I In IO.File.ReadAllBytes(F)
iByte = Hex(I)
If Len(iByte) = 1 Then iByte = "0" & iByte
Select Case n
Case 4
SPorENT = " "
Case 8
SPorENT = " "
Case 12
SPorENT = " "
Case 16
SPorENT = Chr(10)
n = 0
Case Else
SPorENT = " "
End Select
If HexCode = "" Then
HexCode = iByte
Else
HexCode = HexCode & SPorENT & iByte
End If
n = n + 1
Next
RichTextBox1.Text = HexCode
End If
End Sub

Самое простое - читать не целиком, а по страницам некоторой длины. То есть показывать только часть, захотел еще часть - снова считало и т. д.
Для поиска по файлу дергать внешнюю утилиту, которая быстро ищет, например findstr.
Помнится, я в свое время многое так писал - оборачивал внешнюю утилиту в красивую "упаковку".
Все это не серьезно, но что-то большее ты вряд ли сейчас осилишь.
А с какого ж перепуга ты делаешь IO.File.ReadAllBytes(F)?
Читай только ту часть, которую показываешь на экране.
Он читает содержимое файла буферизованно, и обрабатывает/выводит только часть. Как и любой другой правильно написанный HEX-редактор/вьюер.
У тебя же, все содержимое файла целиком считывается, обрабатывается, и выводится. Плюс, тормозной интерпретатор VB вместо нативного кода (хотя хз на чем WinHex написан, может он тоже на фреймворке).
Заюзай File Mapping Object. Система сама всё сделает. Торренты так работают и сервера. И всё ОК будет.