Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Ламерский вопрос... / 8 сообщений из 8, страница 1 из 1
02.03.2021, 22:08
    #40050039
FIL23
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ламерский вопрос...
Как будет производительней код



Код: pascal
1.
2.
3.
r:=1+Integer(ListBox.Items.Objects[ListBoxTemplates.ItemIndex];
v:=1+Integer(ListBox.Items.Objects[ListBoxTemplates.ItemIndex];
d:=1+Integer(ListBox.Items.Objects[ListBoxTemplates.ItemIndex];



или

Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
var
i:integer;

i:=Integer(ListBox.Items.Objects[ListBoxTemplates.ItemIndex];

r:=1+i;
v:=1+i;
d:=1+i;



И вообще как замерить такие вещи?
...
Рейтинг: 0 / 0
02.03.2021, 22:13
    #40050041
kdv
kdv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ламерский вопрос...
FIL23,

в первом случае это совершенно дурацкие повторы, от которых глаза в кучу.
...
Рейтинг: 0 / 0
02.03.2021, 22:14
    #40050042
rgreat
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ламерский вопрос...
FIL23,

Сделай цикл на N-миллионов повторов этих действий и добавь замер времени.

Самое простое - через GetTickCount
...
Рейтинг: 0 / 0
02.03.2021, 22:17
    #40050043
_Vasilisk_
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ламерский вопрос...
FIL23
Как будет производительней код
Что производительнее вызов шести геттеров или двух?
FIL23
И вообще как замерить такие вещи?
Как обычно - for + GetTickCount
...
Рейтинг: 0 / 0
02.03.2021, 22:27
    #40050046
YuRock
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ламерский вопрос...
FIL23
Как будет производительней код



Код: pascal
1.
2.
3.
r:=1+Integer(ListBox.Items.Objects[ListBoxTemplates.ItemIndex];
v:=1+Integer(ListBox.Items.Objects[ListBoxTemplates.ItemIndex];
d:=1+Integer(ListBox.Items.Objects[ListBoxTemplates.ItemIndex];




или

Код: pascal
1.
2.
3.
4.
5.
6.
7.
8.
var
i:integer;

i:=Integer(ListBox.Items.Objects[ListBoxTemplates.ItemIndex];

r:=1+i;
v:=1+i;
d:=1+i;




Так:

Код: pascal
1.
2.
3.
r:=1+Integer(ListBox.Items.Objects[ListBoxTemplates.ItemIndex];
v:=r;
d:=r;
...
Рейтинг: 0 / 0
02.03.2021, 22:50
    #40050051
rgreat
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ламерский вопрос...
kdv,

Во втором варианте дурацких повторов тоже навалом.
...
Рейтинг: 0 / 0
02.03.2021, 23:33
    #40050059
kdv
kdv
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ламерский вопрос...
rgreat,

а я дальше первого не смотрел! :-)
...
Рейтинг: 0 / 0
03.03.2021, 00:48
    #40050086
x1ca4064
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ламерский вопрос...
FIL23
Как будет производительней код

...
И вообще как замерить такие вещи?

Вариант 1: Выполнить 10^6..10^9 раз, посмотреть на время выполнения.
Вариант 2: Учитывая, что хитрых циклов нет, поставить break-point, посмотреть в CPU Window: там будет ассемблерный код, созданный из кода на паскале, сравнить для 2х реализаций. На 0м уровне, можно считать, что чем больше ассемблерных команд, тем код выполняется дольше, потом учесть call'ы, и т.д.

Ну и в данном случае, IMHO, подходит вариант 0: больше сущностей - дольше выполняется :)
...
Рейтинг: 0 / 0
Форумы / Delphi [игнор отключен] [закрыт для гостей] / Ламерский вопрос... / 8 сообщений из 8, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]