@simply_user

Можно ли ускорить доступ к файлу из нескольких потоков одновременно используя memory-mapped files?

Здравствуйте!
Необходимо организовать доступ к файлу из нескольких потоков для того, чтобы каждый поток мог работать со своей частью файла. Но есть подозрение, что одновременный доступ к файлу может значительно снизить скорость чтения данных. Можно ли избежать этого используя вместо обычного чтения из файла отображение файла на память(memory-mapped files)?
Спасибо.
  • Вопрос задан
  • 2743 просмотра
Решения вопроса 1
EvilsInterrupt
@EvilsInterrupt
System programming, Reversing Engineering, C++
1. Сама Windows многое кэширует
2. На мой взгляд I/O операции следует разделять только тогда, когда другие вычислительные процессы достаточно длительные и I/O поток будет успевать к очередному запросу прочитать, иначе зачем?
Ответ написан
Комментировать
Пригласить эксперта
Ответы на вопрос 2
maaGames
@maaGames
Погроммирую программы
Если открывать файл только на чтение, то многопоточность не должна негативно сказаться (за исключением скорости доступа самого диска), т.к. никаких блокировок и синхронизаций не требуется.
Ответ написан
AxisPod
@AxisPod
Ну как бы линейное чтение в любом случае быстрее рандомного. А использование нескольких потоков можеет превратить линейное в рандомное. Быстрее по крайней мере не станет, а вот медленее скорее всего.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы