I made a test to see if there is a difference between the time it takes to write a 1GB file on disk from a single byte array and writing another 1GB file from 1024 arrays (1MB each).

> 
> Test Writing many arrays  
> 
>  331.6902 ms  
> 
>  Test Writing big array  
> 
>  14756.7559 ms  
> 
> 
> 
> 

For this test, the "many arrays" is actually a single `byte[1024 * 1024]` array that I write 1024 times using a for loop.
The "big array" is just a 1GB byte array filled with random values.

Here's what the code looks like : 

```
Console.WriteLine("Test Writing many arrays");

byte[] data = new byte[1048576];

for (int i = 0; i < 1048576; i++)
    data[i] = (byte)(i % 255);

FileStream file = new FileStream("test.txt", FileMode.Create);

sw1.Restart();

for (int i = 0; i < 1024; i++ )
     file.Write(data, 0, 1048576);

file.Close();
sw1.Stop();
s1 = sw1.Elapsed;
Console.WriteLine(s1.TotalMilliseconds);

Console.WriteLine("Test Writing big array");

 byte[] data2 = new byte[1073741824];

 for (int i = 0; i < 1073741824; i++)
      data2[i] = (byte)(i % 255);

 FileStream file2 = new FileStream("test2.txt", FileMode.Create);

 sw1.Restart();

 file2.Write(data2, 0, 1073741824);

 file2.Close();
 sw1.Stop();

 s1 = sw1.Elapsed;
 Console.WriteLine(s1.TotalMilliseconds);

```

I included the `file.Close()` inside the timed part, since it calls the `Flush()` method and writes the stream to the disk.

The resulting files are the exact same size.

I tought maybe C# can *see* that I always use the same array and it might optimize the iteration/writing process, but the result is not 2-3 times faster, it's about 45 times faster... Why?