Да, будет.Во всех практических операционных системах цена выполнения ввода-вывода несколько выше, чем компромисс с меньшим объемом доступной памяти.Практические размеры буфера намного меньше, чем можно было бы ожидать.Размер буфера по умолчанию для библиотеки времени выполнения C для FILE *
, равный 512 байтам, довольно хорош - действительно хорош для множества ситуаций, в которых он используется.И это было разработано для 65 536 байт памяти в Unix V6 (c. 1978).
Тщательное измерение пропускной способности, загрузки процессора и общей загрузки системы для оптимизации размера буфера всегда заставляло меня выбирать размер буфера вдиапазон от 1024 до 16384 байтов.Единственное исключение - файлы, размер которых немного превышает этот диапазон, и в этом случае оптимально хранить весь файл в памяти, когда память доступна.