Какой рекомендуемый размер буфера указывать при создании объекта в конструкторе?
new FileStream("Test#@@#.dat", FileMode.Create,
FileAccess.ReadWrite, FileShare.None, 4096, true);
Здесь он размером 4096.
FileStream внутри себя использует буфер. Если вы просите прочитать один байт, он реально читает полный буфер, и возвращает только один байт. В следующий раз когда вы просите снова один байт, он не читает, а возвращает следующий байт из буфера. Размер этого буфера и задаётся в конструкторе.
А вот при каких обстоятельствах какой нужен размер буфера, это сложный вопрос, и зависит от очень многих факторов. Например, от того, собираетесь ли вы читать весь файл, или только его небольшую часть. От того, какой размер блока файловой системы. от того, сколько файлов вы собираетесь одновременно открывать и. т. д. Хорошего, общего решения наверное нет.
Проще всего, наверное, просто самостоятельно измерить производительность для конкретно вашей задачи с разными размерами буфера, и подобрать тот, который лучше всего подходит. Есть шанс, что вы не заметите разницы для разумных размеров буфера, если ваша задача не занимается интенсивной работой с диском. Поэтому я посоветовал бы в качестве нулевого приближения взять один из конструкторов без указания размера буфера.
Современные инструменты для криптотрейдинга: как технологии помогают принимать решения
Апостиль в Лос-Анджелесе без лишних нервов и бумажной волокиты
Основные этапы разработки сайта для стоматологической клиники
Продвижение своими сайтами как стратегия роста и независимости