Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2005.10.09;
Скачать: CL | DM;

Вниз

Написание оптимального кода под Delphi   Найти похожие ветки 

 
Fay ©   (2005-09-19 11:51) [0]

... есть такая статья
http://www.delphimaster.ru/articles/optimization.html
а в статье есть "Правило 12", гласящее
"Выносите инвариантный код за тело цикла. Наиболее частая ошибка – for i:=1 to length(str) do... Дело в том, что при каждой итерации будет вызываться функция length, что пагубно скажется на производительности."

Неужели сложно проверить? 8)


 
КаПиБаРа ©   (2005-09-19 12:03) [1]

Правило верное, а пример действительно неудачный. И в резюме он ссылается на этот пример.

А ты проверял это выражение вычисляется 1 раз при любых параметрах компилятора?


 
DiamondShark ©   (2005-09-19 12:04) [2]

Уже пинали.


 
DiamondShark ©   (2005-09-19 12:06) [3]


> А ты проверял это выражение вычисляется 1 раз при любых
> параметрах компилятора?

Это спецификация языка Паскаль.
Граничные выражения в for вычисляются один раз.


 
TUser ©   (2005-09-19 12:16) [4]

Эту статью тут как-то уже обсуждали. Там, кажется, и еще какие-то ляпы есть.

Может стоит удалять такое творчество?


 
Mystic ©   (2005-09-19 12:24) [5]

> Может стоит удалять такое творчество?

Лучше сообщить автору и исправить в следующей версии :)


 
isasa ©   (2005-09-19 13:07) [6]

>Граничные выражения в for вычисляются один раз.

Если вкл. Optimization {$O}, переделает на

for i:=length(str) downto 1 do...



Страницы: 1 вся ветка

Текущий архив: 2005.10.09;
Скачать: CL | DM;

Наверх




Память: 0.48 MB
Время: 0.048 c
14-1126623608
u-12
2005-09-13 19:00
2005.10.09
DNS-server


14-1127220878
oldman
2005-09-20 16:54
2005.10.09
(удалено модератором) матерюсь...


14-1127129758
Info
2005-09-19 15:35
2005.10.09
БФТ


3-1125303576
Ольга
2005-08-29 12:19
2005.10.09
Как в T-SQL удалить IDENTITY у поля?


14-1127307165
Prohodil Mimo
2005-09-21 16:52
2005.10.09
как определить language for non-Unicode programs ?