Как сканировать действительно огромные файлы на диске?
Рассматривая действительно большой файл (возможно, больше 4 ГБ) на диске, я хочу просканировать этот файл и вычислить время появления определенного двоичного шаблона.
Моя мысль:
Используйте файл с отображенной памятью (CreateFileMap или boost mapped_file), чтобы загрузить файл в виртуальную память.
Для каждой 100 МБ отображаемой памяти создайте один поток для сканирования и вычисления результата.
Это возможно? Есть ли лучший способ сделать это?
Обновить:
Файл с отображением в памяти был бы хорошим выбором, поскольку сканирование файла объемом 1,6 ГБ может быть выполнено в течение 11 секунд.
Благодарю.