Как создать быструю и эффективную запись файлового потока на большие разреженные файлы

У меня есть приложение, которое пишет большие файлы в нескольких сегментах. Я использую FileStream.Seek для позиционирования каждого wirte. Похоже, что когда я вызываю FileStream.Write в глубокой позиции в разреженном файле, запись запускает "засыпку» операция (запись 0s) на всех предшествующих байтах, которая является медленной.

Есть ли более эффективный способ справиться с этой ситуацией?

Код ниже демонстрирует проблему. Начальная запись занимает около 370 мс на моей машине.

    public void WriteToStream()
    {
        DateTime dt;
        using (FileStream fs = File.Create("C:\\testfile.file"))
        {   
            fs.SetLength(1024 * 1024 * 100);
            fs.Seek(-1, SeekOrigin.End);
            dt = DateTime.Now;
            fs.WriteByte(255);              
        }

        Console.WriteLine(@"WRITE MS: " + DateTime.Now.Subtract(dt).TotalMilliseconds.ToString());
    }

Ответы на вопрос(2)

Ваш ответ на вопрос