Я работаю над приложением, которое последовательно записывает большой файл (и вообще не читает), и я хотел бы использовать posix_fadvise()
для оптимизации поведения файловой системы.
Описание функции на странице руководства предполагает, что наиболее подходящей стратегией будет POSIX_FADV_SEQUENTIAL
. Однако описание реализации Linux сомневается, что:
В Linux POSIX_FADV_NORMAL
устанавливает окно чтения заголовка на размер по умолчанию для устройства поддержки; POSIX_FADV_SEQUENTIAL
удваивает этот размер, а POSIX_FADV_RANDOM
полностью отключает чтение файла.
Поскольку я пишу только данные (возможно, перезаписываю файлы), я не ожидаю повторного чтения. Должен ли я тогда придерживаться моего POSIX_FADV_SEQUENTIAL
или, скорее, использовать POSIX_FADV_RANDOM
, чтобы отключить его?
Как насчет других опций, таких как POSIX_FADV_NOREUSE
? Или может вообще не использовать posix_fadvise()
для письма?