Как сканировать действительно огромные файлы на диске?

Рассматривая действительно большой файл (возможно, больше 4 ГБ) на диске, я хочу просканировать этот файл и вычислить время появления определенного двоичного шаблона.

Моя мысль:

Используйте файл с отображенной памятью (CreateFileMap или boost mapped_file), чтобы загрузить файл в виртуальную память.

Для каждой 100 МБ отображаемой памяти создайте один поток для сканирования и вычисления результата.

Это возможно? Есть ли лучший способ сделать это?

Обновить:
Файл с отображением в памяти был бы хорошим выбором, поскольку сканирование файла объемом 1,6 ГБ может быть выполнено в течение 11 секунд.

Благодарю.

Ответы на вопрос(8)

Ваш ответ на вопрос