Показать сообщение отдельно
Старый 29.11.2011, 17:29   #51
HolyDel
 
Регистрация: 26.09.2006
Сообщений: 6,035
Написано 1,474 полезных сообщений
(для 2,707 пользователей)
Ответ: Великая битва 4х языков программирования на простейшей задачке

вот у тебя тоже наблюдается аномалия на 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.
(Offline)
 
Ответить с цитированием