Если вы читаете файл последовательно, моим выбором по умолчанию было бы повторно read
в довольно большой буфер.
Если вы получаете доступ к небольшим битам данных, разбросанных по большому файлу, выбор менее ясен, но mmap
может привести к более читаемому коду (поскольку вы могли бы кодировать вещи так, как если бы файл уже был в памяти). Что даст лучшую производительность в этом случае, сложно сказать априори.
Если вы пишете критически важный для работы код, то единственный способ определить производительность - путем сопоставления/профилирования фактического кода.
«Лучше»? Что лучше"? –
Можете ли вы рассказать нам, насколько велик ваш файл, и сколько у вас файлов? –
Наверное, самое лучшее, что нужно сделать, это попробовать оба метода в любом случае и посмотреть, что быстрее для вашего конкретного использования. Трудно сказать, какой из них может быть быстрее, потому что вы не указали какие-либо свойства файлов, которые вы читаете, например, размер, содержит ли он согласованные данные и т. Д. – dreamlax