Вариант HolyDel'a на шарпе:
using System;
namespace speedTest
{
static class Program
{
static int Main()
{
int counter = 0;
var a = DateTime.Now.Ticks;
var map = new int[512 * 128 * 512];
var allocate_time = DateTime.Now.Ticks - a;
a = DateTime.Now.Ticks;
for (int i = 0; i < 20; ++i)
{
for (int x = 0; x < 512; ++x)
{
for (int y = 0; y < 128; ++y)
{
for (int z = 0; z < 512; ++z)
{
++counter;
map[512 * 128 * x + 128 * y + z] = counter;
}
}
}
}
var fill_time = DateTime.Now.Ticks - a;
Console.WriteLine("allocate time: {0}", allocate_time / 10000f);
Console.WriteLine("fill time: {0}", (fill_time / 20f) / 10000f);
Console.Read();
return 0;
}
}
}
Результаты на рабочей машине (не той которая в подписи, а чуть по мощнее, но тоже i5)
allocate time: 1,0001
fill time: 43,00246