Показать сообщение отдельно
Старый 20.05.2012, 21:09   #8
radiobutton
Бывалый
 
Регистрация: 16.09.2011
Сообщений: 863
Написано 257 полезных сообщений
(для 546 пользователей)
Ответ: C# структура программы.

помоему очевидно что первый вариант лучше, не?)
Если конечно по ходу значение get_width() не может измениться и тебе важны эти изменения.

Провел эксперимет.


using System;
using System.Linq;
using System.Windows.Forms;
using System.Globalization;


namespace test_cs
{
    class lol
    {
        public int x { get; set; }

        public lol(int p)
        { x = p; }
        public int _x()
        { return x; }
    }


    class TestClass
    {
        static private long Millisecs()
        {
            long[] p = new long[12];

            p[0] = 31; p[1] = 28; p[2] = 31; p[3] = 30; p[4] = 31; p[5] = 30;
            p[6] = 31; p[7] = 31; p[8] = 30; p[9] = 31; p[10] = 30; p[11] = 31;
            if ((DateTime.Now.Year - 2012) % 4 == 0)
            {
                p[1] = 29;
            }
            long n = 0;
            for (int i = 0; i < DateTime.Now.Month - 1; i++)
            {
                n += p[i];
            }
            return Convert.ToInt64(((((n + Convert.ToInt64(DateTime.Now.Day)) * 24 + Convert.ToInt64(DateTime.Now.Hour)) * 60 + Convert.ToInt64(DateTime.Now.Minute)) * 60 + Convert.ToInt64(DateTime.Now.Second)) * 1000 + Convert.ToInt64(DateTime.Now.Millisecond));
        }

        static void Main()
        {
            long dt1, dt2, dt3;
            lol a = new lol(5342);
            int p = a._x();
            
            long t1 = Millisecs();
            for (int i = 0; i < 3000000;i++ )
            {
                int p1 = a._x(); int p2 = a._x(); int p3 = a._x(); int p4 = a._x(); int p5 = a._x();
                int p6 = a._x(); int p7 = a._x(); int p8 = a._x(); int p9 = a._x(); int p10 = a._x();
                int p11 = a._x(); int p12 = a._x(); int p13 = a._x(); int p14 = a._x(); int p15 = a._x();
                int p16 = a._x(); int p17 = a._x(); int p18 = a._x(); int p19 = a._x(); int p20 = a._x();
                int p21 = a._x(); int p22 = a._x(); int p23 = a._x(); int p24 = a._x(); int p25 = a._x();
                int p26 = a._x(); int p27 = a._x(); int p28 = a._x(); int p29 = a._x(); int p30 = a._x();
                int p31 = a._x(); int p32 = a._x(); int p33 = a._x(); int p34 = a._x(); int p35 = a._x();
                int p36 = a._x(); int p37 = a._x(); int p38 = a._x(); int p39 = a._x(); int p40 = a._x();
                int p41 = a._x(); int p42 = a._x(); int p43 = a._x(); int p44 = a._x(); int p45 = a._x();
                int p46 = a._x(); int p47 = a._x(); int p48 = a._x(); int p49 = a._x(); int p50 = a._x();
            }
            long t2 = Millisecs();
            dt1 = t2 - t1;

            t1 = Millisecs();
            for (int i = 0; i < 3000000; i++)
            {
                int p1 = a.x; int p2 = a.x; int p3 = a.x; int p4 = a.x; int p5 = a.x;
                int p6 = a.x; int p7 = a.x; int p8 = a.x; int p9 = a.x; int p10 = a.x;
                int p11 = a.x; int p12 = a.x; int p13 = a.x; int p14 = a.x; int p15 = a.x;
                int p16 = a.x; int p17 = a.x; int p18 = a.x; int p19 = a.x; int p20 = a.x;
                int p21 = a.x; int p22 = a.x; int p23 = a.x; int p24 = a.x; int p25 = a.x;
                int p26 = a.x; int p27 = a.x; int p28 = a.x; int p29 = a.x; int p30 = a.x;
                int p31 = a.x; int p32 = a.x; int p33 = a.x; int p34 = a.x; int p35 = a.x;
                int p36 = a.x; int p37 = a.x; int p38 = a.x; int p39 = a.x; int p40 = a.x;
                int p41 = a.x; int p42 = a.x; int p43 = a.x; int p44 = a.x; int p45 = a.x;
                int p46 = a.x; int p47 = a.x; int p48 = a.x; int p49 = a.x; int p50 = a.x;
            }
            t2 = Millisecs();
            dt2 = t2 - t1;

            t1 = Millisecs();
            for (int i = 0; i < 3000000; i++)
            {
                int p1 = p; int p2 = p; int p3 = p; int p4 = p; int p5 = p;
                int p6 = p; int p7 = p; int p8 = p; int p9 = p; int p10 = p;
                int p11 = p; int p12 = p; int p13 = p; int p14 = p; int p15 = p;
                int p16 = p; int p17 = p; int p18 = p; int p19 = p; int p20 = p;
                int p21 = p; int p22 = p; int p23 = p; int p24 = p; int p25 = p;
                int p26 = p; int p27 = p; int p28 = p; int p29 = p; int p30 = p;
                int p31 = p; int p32 = p; int p33 = p; int p34 = p; int p35 = p;
                int p36 = p; int p37 = p; int p38 = p; int p39 = p; int p40 = p;
                int p41 = p; int p42 = p; int p43 = p; int p44 = p; int p45 = p;
                int p46 = p; int p47 = p; int p48 = p; int p49 = p; int p50 = p;
            }
            t2 = Millisecs();
            dt3 = t2 - t1;

            Console.WriteLine("dt1 = "+dt1);
            Console.WriteLine("dt2 = " + dt2);
            Console.WriteLine("dt3 = " + dt3);

            Console.WriteLine("end");

            Console.Read();
        }
    }
}


Результаты:


Первое число это вызов значения через метод по ссылке на класс.
Второе число это вызов значения через свойство по ссылке на класс.
Третье число это вызов значения через локальную переменную, которой один раз присвоили значение.
50 раз внутри цикла для того чтобы действия по увеличению счетчика цикла не оказывали большое влияние на результаты.
(Offline)
 
Ответить с цитированием
Эти 3 пользователя(ей) сказали Спасибо radiobutton за это полезное сообщение:
ANIK123 (21.05.2012), Лit}{Ъ (18.11.2012), FireOwl (20.05.2012)