2009-07-08 3 views
0

Позволяет просто фантазировать и говорить о производительности.Delphi и кодирование производительности. Заявления Показатели производительности и длины кода

Как я прочитал статью в about.delphi.com, называемую программированием производительности, были интересные параграфы, утверждающие, что оператор Case (на самом деле я предпочитаю называть его структурой) быстрее, чем If; Для быстрее, чем While и Repeat, но While является самым медленным оператором цикла. Я, наверное, понимаю, почему пока самый медленный, но ... как насчет других.

Вы протестировали/сыграли/экспериментировали или даже получили реальное повышение производительности, если изменили, например, все утверждения IF в случаях, где это возможно?

Также я хотел бы поговорить о других видах поведения с измененным циклом и if в Delphi IDE, но это был бы другой вопрос.

С чего начать, дамы и господа?

+0

Спасибо Lieven за сообщение об ошибке и исправление! –

+0

Просьба указать ссылку на статью, которую вы упомянули. Я не нахожу там ничего, называемого «Программирование производительности». –

ответ

3

Это очень редко, когда тип структуры управления/конструкция контура имеют значение. Вы не можете получить разумное увеличение производительности, если вы измените, скажем, For цикл While. Скорее, алгоритмы имеют значение.

2

Сомневаюсь, что для будет более медленным на практике, чем , а.

AFAIK, для оценивает состояние один раз в то время, пока (не каламбур) не оценивает состояние каждый раз. Рассмотрите следующие инструкции:

for i = 0 to GettingAmountOfUsersIsTakingALotOfTime do 
begin 
    ... 
end; 

i := 0; 
while i <= GettingAmountOfUsersIsTakingALotOfTime do 
begin 
    ... 
    Inc(I); 
end; 

Оператор while будет величинами раз медленнее, чем оператор if.

+0

Да, вы абсолютно правы. Я писал не так - я думал то же самое, но как-то писал разные;) В любом случае - спасибо за подсказку и иллюстрации - я надеюсь, что это поможет начинающим программистам в Delphi;) –

Смежные вопросы