fseek. Время работы

266
14 марта 2017, 15:42

Привет. У меня стоит задача осуществлять многократное перемещение по файлу. Мне важна скорость доступа в связи с этим у меня возникает вопрос о том, как реализована функция fseek или её аналоги. Я не привязываюсь к конкретному языку, так как полагаю, что она реализована везде примерно одинаково. Но если это не так, то речь идёт о golang 1.6 (1.8, если хотите).

Так, например, я нахожусь в начале файла, скажем на нулевом байте. Мне необходимо прочитать последний байт файла. Можно ли оценить время доступа к последнему байту файла по сравнению с временем доступа к первому байту.

Спасибо за помощь.

Answer 1

Никак не можно. fseek лишь меняет переменные в памяти, и гипотетически подсказывает механизму кэширования ОС, что файл в дальнейшем будут читать вот с этого места.

Современные ОС в части доступа к файлу настолько сложны (из-за многоуровневого кэша и механизма подкачки в частности), что говорить о времени доступа можно только "в среднем", статистически.

Понятно, что наиболее быстро работа с файлом происходит, когда файл находится на отдельном диске, не фрагментирован, и обрабатывается последовательно крупными блоками.

Добиться такого счастья в реально действующей вычислительной среде малореально.

READ ALSO
Функции с переменным числом параметров - C++ [требует правки]

Функции с переменным числом параметров - C++ [требует правки]

Как обратиться к элементам в вызове функции, когда буду проверять, можно ли построить треугольник?

238
В чем ошибка отправлений данных через ajax?

В чем ошибка отправлений данных через ajax?

Всем доброго времени суток,отправляю ajax'ом id в таблицу на удаление,беру через инпутВыскакивает функция success,пишет,что все выполненоНО как...

235
валидация телефоного номера

валидация телефоного номера

написал код для валидации поля - мобильного телефона, но нашёл проблему, при заполнение например 12345 - работает отличтно, 1234п - выдает ошибку,...

212
TypeError: Cannot read property 'toLowerCase' of null Angular

TypeError: Cannot read property 'toLowerCase' of null Angular

Вот такая ошибка в консолиВот код фильтра

283