Запрет кеша при тестировании скорости копирования файлов в .NET (C #) - PullRequest
2 голосов
/ 28 октября 2011

Я пытаюсь сделать несколько тестов скорости копирования в нашей глобальной сети.Как я и подозревал, использование .NET-функции File.Copy (source, dest), кажется, ускоряется при втором и последующих запусках.Я подозреваю, что либо в моей корпоративной сети выполняется какое-то хитрое кэширование, либо Windows работает.

Каков наилучший способ избежать риска этого?Будет ли целесообразным переименовывать исходный файл в случайную строку каждый раз, или есть более разумный способ его обойти?

Ответы [ 2 ]

2 голосов
/ 31 октября 2011

Я думаю, что я закрою это.Я думаю, возможно, лучший способ - это создать случайный файл (сделать что-то вроде: Создание случайного файла в C # ) и передать его.

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

0 голосов
/ 28 октября 2011

Я считаю, что это кеширование файлов, работающее в удаленной системе.Когда файл запрашивается, механизм кэширования файла в первый раз кэширует этот файл в ОЗУ в ожидании будущих запросов и обслуживает последующие запросы из ОЗУ.Это только сокращает время, затрачиваемое на чтение файла из локального хранилища и начало его обслуживания, а не на передачу их между двумя системами.

Обычно корпорации устанавливают блоки кэша для обслуживания файлов через веб-ресурсыИнтранет и Интернет), я не знаю ни одного механизма кеша для этого для общих файловых ресурсов.

...