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