У меня есть какое-то программное обеспечение для тестирования алгоритмов, работающее на компьютере с Windows 7, которое при первом запуске для любого файла данных работает примерно в 3-5 раз медленнее, чем при последующих запусках. Наш алгоритм просто читает файл по несколько сотен байт за раз и записывает один результат обратно за каждые ~ 50 операций чтения.

Есть ли какое-то внутреннее кэширование где-то в Windows (кажется маловероятным с 3 ГБ файлом?) или что-то другое? Есть ли способ ускорить этот первый запуск?

1 ответ1

2

Есть ли какое-то внутреннее кэширование где-то в Windows (кажется маловероятным для файла 3 ГБ?)

Да, в Windows есть кеш, который может отвечать за это.

Согласно связанной статье MSDN вы можете отключить кэширование для определенного файла с флагом FILE_FLAG_NO_BUFFERING в вызове CreateFile. Если вы не можете изменить код, вместо этого вы можете использовать приложение SysInternals RAMMap для сброса кэша между запусками тестов.

Смотрите эту связанную публикацию на SO для деталей.

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