DateTime не достаточно точен, чтобы измерить такие небольшие промежутки времени. Для этого вы можете использовать секундомер из пространства имен System.Diagnostics
int num = 1024 * 1024;
Stopwatch sw = new Stopwatch();
sw.Start();
long AForMemory = DateTime.Now.Ticks;
double[] massDoubleForMemory = new double[num];
sw.Stop();
long elapsed = sw.ElapsedTicks;
Если вы пытаетесь диагностировать воздействие, которое оказывают определенные типы распределений, то вы, скорее всего, смотрите не на то место. Распределение в .NET может быть очень быстрым или очень медленным. Если выделению предшествует сборка мусора, например, или сборщик мусора должен зарезервировать новый блок памяти для удовлетворения вашего запроса, сам запрос может занять много времени по сравнению с тем, когда сборщику gc достаточно места. GC динамичен в том смысле, что он может в любое время определить выполнение тяжелых операций.
Кроме того, реальные проблемы с производительностью связаны с сборкой мусора, а не с выделением ресурсов.