Константин: Спасибо! Эта ссылка имеет EXE-файл командной строки, который выполняет тестирование, которое я искал.
Я также нашел ссылку с этой страницы на более интересную статью (в Word и PDF) на этой странице: Шаблоны последовательного программирования файлов и производительность с .NET
В этой статье речь пойдет о производительности небуферизованных файлов (а значит, нет кэширования при чтении / записи - только сырая производительность диска).
Цитируется прямо из статьи:
Нет простого способа отключить
Буферизация FileStream в V2 .NET
фреймворк. Нужно вызвать Windows
файловая система напрямую, чтобы получить
дескриптор небуферизованного файла, а затем
«Обернуть» результат в FileStream как
следует в C #:
[DllImport("kernel32", SetLastError=true)]
static extern unsafe SafeFileHandle CreateFile(
string FileName, // file name
uint DesiredAccess, // access mode
uint ShareMode, // share mode
IntPtr SecurityAttributes, // Security Attr
uint CreationDisposition, // how to create
uint FlagsAndAttributes, // file attributes
SafeFileHandle hTemplate // template file
);
SafeFileHandle handle = CreateFile(FileName,
FileAccess.Read,
FileShare.None,
IntPtr.Zero,
FileMode.Open,
FILE_FLAG_NO_BUFFERING,
null);
FileStream stream = new FileStream(handle,
FileAccess.Read,
true,
4096);
Вызов CreateFile () с
Флаг FILE_FLAG_NO_BUFFERING сообщает
файловая система для обхода всего программного обеспечения
кеширование памяти для файла.
«Истинное» значение передается как третье
аргумент для конструктора FileStream
указывает, что поток должен принимать
владение дескриптором файла, то есть
что дескриптор файла будет
автоматически закрывается, когда
Поток закрыт. После этого
hocus-pocus, небуферизованный файл
поток читается и записывается в том же
как и любой другой.