Показать сообщение отдельно
Старый 26.11.2011, 03:00   #4
ffinder
Дэвелопер
 
Аватар для ffinder
 
Регистрация: 10.09.2007
Сообщений: 1,442
Написано 793 полезных сообщений
(для 1,460 пользователей)
Ответ: Великая битва 4х языков программирования на простейшей задачке

теперь потестируем .NET 4 - технологию, отвечающую за скриптинг в движке Unity3D (это не совсем верно, т.к. в Unity используется Mono - аналог .NET Framework)

using System;

namespace BigArray
{
    class Program
    {
        public static void Main(string[] args)
        {
            int counter = 0;
            
            int allocateStart = Environment.TickCount;
            int[,,] voxelData = new int[512,128,512];
            int allocateStop = Environment.TickCount;
            
            Console.WriteLine("Allocation time: {0} ms", allocateStop - allocateStart);
            
            int fillStart = Environment.TickCount;
            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++)
                        {
                            voxelData[x,y,z] = counter++;
                        }
                    }
                }
            }
            int fillStop = Environment.TickCount;
            
            Console.WriteLine("Fill time: {0} ms", (fillStop - fillStart) / 20);
            
            Random random = new Random();
            int randomX = random.Next(0, 511);
            int randomY = random.Next(0, 127);
            int randomZ = random.Next(0, 511);
            Console.WriteLine("Random array element at: ({0},{1},{2}) is {3}", randomX, randomY, randomZ, voxelData[randomX, randomY, randomZ]);
            
            Console.Write("Press any key to continue . . . ");
            Console.ReadKey(true);
        }
    }
}
И результаты:
время выделения массива: 0 мс
время заполения: 187 мс

Вот так, старичок Блиц нервно курит в стороне. Всё таки новые технологии явно лучше. Прямо проникаешься производительностью дотнета.
(Offline)
 
Ответить с цитированием
Эти 7 пользователя(ей) сказали Спасибо ffinder за это полезное сообщение:
Arton (27.09.2012), cahekp (28.11.2011), is.SarCasm (26.11.2011), pax (28.11.2011), Randomize (26.11.2011), Reks888 (26.11.2011), St_AnGer (26.11.2011)