public static void Main()
for (int i = 1; i < 1_000_000; i += 1)
Console.WriteLine($"Write is faster than WriteByte at {i} bytes");
Console.WriteLine("\n#############################################\n");
static bool TestWriteSpeed(int arrayLength)
Console.WriteLine($"Byte-count: {arrayLength}");
byte[] data = GenerateRandomByteArray(arrayLength);
var watch = System.Diagnostics.Stopwatch.StartNew();
using (MemoryStream memoryStream = new MemoryStream())
memoryStream.Write(data, 0, data.Length);
Console.WriteLine($"Time taken using Write: {watch.ElapsedTicks} ticks");
var writeDuration = watch.Elapsed;
using (MemoryStream memoryStream = new MemoryStream())
memoryStream.WriteByte(b);
Console.WriteLine($"Time taken using WriteByte: {watch.ElapsedTicks} ticks\n");
var writeByteDuration = watch.Elapsed;
return writeDuration < writeByteDuration;
static byte[] GenerateRandomByteArray(int length)
Random random = new Random();
byte[] randomBytes = new byte[length];
random.NextBytes(randomBytes);