вот у тебя тоже наблюдается аномалия на flatten. ordered тоже должен быть быстрее, чем random. но почему то нет. кто сможет объяснить почему?
правка: короче ето из-за оптимизирующего компилятора. вот так:
elapsedFill = timer.ElapsedTicks;
Console.WriteLine("Flattened fill: {0}ms", Math.Round((elapsedFill / 20f) * 1000f / Stopwatch.Frequency, 3));
timer.Restart();
int number1 = 0;
for (int i = 0; i < count_values; ++i)
{
number1 += map[512 * 128 * ordered_values[i].x + 128 * ordered_values[i].y + ordered_values[i].z];
}
elapsedGet = timer.ElapsedTicks;
Console.WriteLine("Flattened get all times (ordered): {0}ms number = {1}", Math.Round(elapsedGet * 1000f / Stopwatch.Frequency, 3),number1);
timer.Restart();
number1 = 0;
for (int i = 0; i < count_values; ++i)
{
number1 += map[512 * 128 * random_values[i].x + 128 * random_values[i].y + random_values[i].z];
}
elapsedGet = timer.ElapsedTicks;
Console.WriteLine("Flattened get all times (random): {0}ms number = {1}", Math.Round(elapsedGet * 1000f / Stopwatch.Frequency, 3),number1);
все возвращается на свои места 78 ordered, 533 random.