7

Для целей тестирования мне нужно очистить файловый кеш (например, для измерения производительности файловой операции).

Я нашел CacheSet от sysinternals, но нажатие Clear там не помогает. Файл, который я только что скопировал в Nil при повторном копировании, делает это в мгновение ока (в то время как начальная операция заняла значительные 2 секунды).

Означает ли это, что HD имеет свое собственное кэширование, которое нельзя отменить или очистить?

3 ответа3

3

Вот простое решение:

Запустите один (или более) экземпляр (ы) MemAlloc. Выделите объем ОЗУ, равный примерно 80% от общего объема ОЗУ, установленного на вашем компьютере. Это заставит Windows освободить память, зарезервированную для кэширования файлов. Закройте все экземпляры MemAlloc. Готово.

Примечание: MemAlloc может выделить максимум 2 ГБ ОЗУ. Итак, если на вашем компьютере более 2 ГБ ОЗУ, запустите дополнительные экземпляры MemAlloc.

2

Я не уверен, насколько это имеет отношение к вашему вопросу, но, отвечая на вашу вторую часть, да, жесткие диски имеют собственный внутренний аппаратный кэш - обычно 2, 8, 16, 32 или недавно 64 мегабайта.

Кроме того, в Windows есть функция Disk Write Caching которая может вам помочь. Его можно включить / отключить для каждого диска, выполнив следующие действия (непосредственно скопированные отсюда):

  1. Щелкните правой кнопкой мыши Мой компьютер и выберите Свойства.
  2. Перейдите на вкладку «Оборудование».
  3. Нажмите Диспетчер устройств.
  4. Щелкните значок плюса (+) рядом с веткой Дисководы, чтобы развернуть его.
  5. Щелкните правой кнопкой мыши диск, на котором вы хотите включить или отключить кэширование записи на диск, и выберите «Свойства».
  6. Перейдите на вкладку «Свойства диска».
  7. Установите или снимите флажок «Запись в кэш включен» в зависимости от ситуации.
  8. Нажмите ОК.
0

Я ответил на этот вопрос о StackOverflow - вам нужно открыть том определенным образом.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .