2009-05-18 5 views
0

Когда функция CreateFile вызывается без флага FILE_FLAG_NO_BUFFERING, Каков размер внутреннего буфера операционной системы?Каков размер буфера по умолчанию для CreateFile в Windows?

Если мой размер буфера больше, чем внутренний буфер Windows, могу ли я полностью использовать пропускную способность диска?

ответ

0

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

0

Это зависит от того, сколько у вас RAM и как настроен аппарат. Обычно серверы настроены на привилегию системного кеша. Вы можете изменить это путем изменения реестра следующего ключа

[HKEY_LOCAL_MACHINE \System \CurrentControlSet \Control \Session Manager \Memory Management] LargeSystemCache 

The SetSystemFileCacheSize function может быть использованы для изменения размера кэша. Однако, исходя из того, что я понимаю, установка размера рабочего набора является скорее намеком на операционную систему, чем жестким пределом.

Что касается вашего второго вопроса, я не совсем уверен, что вы имеете в виду. Я не вижу, как размер вашего буфера повлияет на пропускную способность, но я уверен, что кто-то поправит меня, если я ошибаюсь.

0

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

Системный кеш игнорируется в этом случае, поэтому вам необходимо (см. MSDN), чтобы быть осторожным с выравниванием и размером вашего I/O.

+0

Уверенный, что если вы перейдете к свойствам на вашем диске в окнах и проверьте вкладку «политика», вы можете увидеть, что Windows может инструктировать контроллер для буферизации того, что вы пишете, для ускорения операций записи, даже если вы не указали буферизацию ..... – ROAR

+0

Ах, да, и тогда могут быть буферы, на которых есть независимо, из-за их стабильности и т. Д. Я имел в виду, что в кешировании данных ОС больше нет буферов. – jrtipton

 Смежные вопросы

  • Нет связанных вопросов^_^