Как очистить кэш чтения с диска под Windows? [duplicate]

9
задан Community 23 May 2017 в 11:45
поделиться

2 ответа

Единственное решение, которое я нашел до сих пор, было http://chadaustin.me/2009/04/flushing-disk-cache/, но это занимает слишком много времени, поэтому Надеюсь, мы найдем лучше.

2
ответ дан 4 December 2019 в 22:26
поделиться

Насколько я понимаю, к сожалению, невозможно удалить кеш чтения под Windows. Я потратил некоторое время на изучение этого несколько лет назад, и только узнал, как сбросить кеш записи.

На мой взгляд, у вас есть три варианта, если только кто-то еще не нашел волшебства:

  1. Если возможно, выполняйте ввод-вывод чтения файла в небуферизованном режиме.
  2. Каждый раз, когда вы хотите провести бенчмаркинг, создавайте новую копию тестовых данных, указав небуферизованный режим при создании новой копии (это должно сохранить копию вне кэша чтения, но я не тестировал) .
  3. Выделите достаточно памяти, чтобы Windows могла сбросить кэш диска (тьфу!).

РЕДАКТИРОВАТЬ: действительно возможно очистить кеш чтения, по крайней мере, в Vista и более поздних версиях: Отключить или очистить кеш страниц в Windows. Однако для этого требуется вызов недокументированного NtSetSystemInformation NT API. Кроме того, для одного файла кэш чтения можно очистить, просто открыв файл с указанным FILE_FLAG_NO_BUFFERING и снова закрыв дескриптор.

3
ответ дан 4 December 2019 в 22:26
поделиться
Другие вопросы по тегам:

Похожие вопросы: