Если вы читаете файл последовательно, мой выбор по умолчанию будет многократно read
в большой буфер.
Если вы обращаетесь к небольшим битам данных, разбросанных по большому файлу, выбор менее очевиден, но mmap
может привести к более читаемому коду (поскольку вы можете кодировать вещи, как если бы файл уже был в памяти) , Что даст лучшую производительность в этом случае, сложно сказать априори.
Если вы пишете код, критичный к производительности, то единственный способ определить производительность - это сравнить / профилировать реальный код.