![]() |
| ||
|
|
Новости |
Поиск |
FAQ |
Статьи |
Книги |
Новости VCL
| | Форумы ЧАТ |
Орешник |
|
| |||
| |||
« предыдущая ветвь | форум | следующая ветвь »
obj.items[i] и obj[i] - что быстрее? вопрос про default property [D7, XP]
Blind Guardian © (2007-10-30 14:37:00)
type
TC=class
public
a:array of integer;
function getItem(index:integer):integer;
procedure putItem(index:integer;const Value:integer);
property def[index:integer]:integer read getItem write puItem;default;
end;
implementaion
function TC.getItem;
begin
result:=a[Index];
end;
procedure TC.putItem;
begin
a[Index]:=Value;
end;
var
c:TC;
Что быстрее будет работать: чтоение из/запись в c.a[i] или c[i] ? Просто часто влом постоянно писать идентификатор массива, когда можно его опустить.
Сусл (2007-10-31 01:22:00) [1]практика - критерий истины.
Однокамушкин (2007-10-30 17:17:00) [2]
> Джо © (30.10.07 16:42) [4]
Читайте внимательно вопрос: автор сравнивает c[i] не с c.def[i], а с c.a[i], а это уже совсем другой расклад
Джо (2007-10-30 16:42:00) [3]> [3] Однокамушкин (30.10.07 16:37)
> Как это к идентичному? c.a[i] - это прямое обращение к полю,
> а c[i] - к свойству, которое вызывает метод, который внутри
> себя обращается к этому полю... Первый вариант быстрее,
> но идеологически неправилен... Когда скорость критична,
> классы вообще лучше не использовать, так как их навороты
> способствуют удобству, но не скорости
http://unclejoe.ho.com.ua/img/cpu-window.png
Однокамушкин (2007-10-30 16:37:00) [4]
> Джо © (30.10.07 14:52) [1]
> Обе синтаксические конструкции преобразуются компилятором
> к идентичному машинному коду.
Как это к идентичному? c.a[i] - это прямое обращение к полю, а c[i] - к свойству, которое вызывает метод, который внутри себя обращается к этому полю... Первый вариант быстрее, но идеологически неправилен... Когда скорость критична, классы вообще лучше не использовать, так как их навороты способствуют удобству, но не скорости
Blind Guardian (2007-10-30 15:46:00) [5]спасибо
Джо (2007-10-30 14:52:00) [6]Обе синтаксические конструкции преобразуются компилятором к идентичному машинному коду. » Джо: » Ответ неверный, невнимательно прочитал вопрос.