почему так медленно?
От: CodeMonkey  
Дата: 07.06.19 17:02
Оценка:
  Скрытый текст
    class Program
    {
        static void Main(string[] args)
        {
            var num = 10_000_000;

            {
                var watch = Stopwatch.StartNew();

                var data = new TestClass[num];
                for (var i = 0; i < data.Length; i++)
                {
                    data[i] = new TestClass
                    {
                        Number0 = 10,
                        Number1 = 20,
                    };
                }

                watch.Stop();
                Console.WriteLine(watch.Elapsed.TotalSeconds);
            }

            {
                var watch = Stopwatch.StartNew();

                var data = new TestStruct[num];
                for (var i = 0; i < data.Length; i++)
                {
                    data[i].Number0 = 10;
                    data[i].Number1 = 20;
                }

                watch.Stop();
                Console.WriteLine(watch.Elapsed.TotalSeconds);
            }
        }

        struct TestStruct
        {
            public long Number0;
            public long Number1;
            public long Temp0;
            public long Temp1;
            public long Temp2;
            public long Temp3;
            public long Temp4;
            public long Temp5;
            public long Temp6;
            public long Temp7;
        }

        class TestClass
        {
            public long Number0;
            public long Number1;
            public long Temp0;
            public long Temp1;
            public long Temp2;
            public long Temp3;
            public long Temp4;
            public long Temp5;
            public long Temp6;
            public long Temp7;
        }
    }


Получается:

1.6395053
0.2299897

Откуда здесь разница аж в 8 раз?
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.