This code takes about 8 seconds with a stream containing about 65K coming from a blob in a database

private string[] GetArray(Stream stream)
{
    BinaryFormatter binaryFormatter = new BinaryFormatter();
    object result = binaryFormatter.Deserialize(stream);
    return (string[])result;
}

This code takes a few milliseconds:

private string[] GetArray(Stream stream)
{
    BinaryFormatter binaryFormatter = new BinaryFormatter();
    MemoryStream memoryStream = new MemoryStream();
    Copy(stream, memoryStream);
    memoryStream.Position = 0;
    object result = binaryFormatter.Deserialize(memoryStream);
    return (string[])result;
}

Why?

Edit
Report