Como criar filestream rápido e eficiente escreve em grandes arquivos esparsos

Eu tenho um aplicativo que grava arquivos grandes em vários segmentos. Eu uso FileStream.Seek para posicionar cada wirte. Parece que quando eu chamo FileStream.Write em uma posição profunda em um arquivo esparso a gravação aciona uma operação de "backfill" (escrevendo 0s) em todos os bytes anteriores que é lenta.

Existe uma maneira mais eficiente de lidar com essa situação?

O código abaixo demonstra o problema. A gravação inicial leva cerca de 370 MS na minha máquina.

    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());
    }

questionAnswers(2)

yourAnswerToTheQuestion