LINUX.ORG.RU

История изменений

Исправление Deleted, (текущая версия) :

Если произвольное значение? Оно указано в файл-индексе.

На шпиндельных дисках seek() может быть не такой уж и быстрый. Физически seek-и бывают разные, короткие и длинные, в дальнее место диска. Вот здесь есть некоторые цифры https://en.wikipedia.org/wiki/Hard_disk_drive_performance_characteristics

Обычно операционная система делает так называемый read-ahead, т.е. предполагается что данные после позиционирования будут читаться линейно, можно немного прочитать лишнего и подержать в кэше. Это поведение настраивается.

Если файл не очень большой и нужно читать и писать короткие (меньше нескольких килобайт) данные в разные места, mmap()* с большой вероятностью будет эффективнее чем позиционироваться и читать вручную

UPD: * mmap() на весь файл, конечно

Исходная версия Deleted, :

Если произвольное значение? Оно указано в файл-индексе.

На шпиндельных дисках seek() может быть не такой уж и быстрый. Физически seek-и бывают разные, короткие и длинные, в дальнее место диска. Вот здесь есть некоторые цифры https://en.wikipedia.org/wiki/Hard_disk_drive_performance_characteristics

Обычно операционная система делает так называемый read-ahead, т.е. предполагается что данные после позиционирования будут читаться линейно, можно немного прочитать лишнего и подержать в кэше. Это поведение настраивается.

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