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

Вниз

Что можно почитать про оптимизацию кода ?   Найти похожие ветки 

 
Kinder_   (2005-10-06 20:47) [0]

Например, в книге по VB6 от Microsoft Press есть раздел посвещенный оптимизации программы.
В нем приводятся примеры и советы. Какие книги посоветуете по Delphi на эту тему ?
Спасибо.


 
Sergey_Masloff   (2005-10-06 20:54) [1]

Для начала я бы посоветовал книгу МакКоннелла Code Complete (Совершенный код) в котором он совершенно справедливо (и на примерах) показывает почему оптимизацией не надо увлекаться. Краткие тезисы:
1) Эффект очень редко сопоставим с затрачиваемыми усилиями
2) Разработчики компиляторов уже сделали много того что делает ручную оптимизацию ненужной
3) Методики быстро устаривает - что вчера позволяло ускорить программу сегодня может привести к "тормозам" и тратить значительную часть своего времени на изучение техник оптимизации - напрасные затраты.

Когда будет опыт позволяющий понять - да, тут оптимизация нужна - тогда вы сами найдете что почитать. Честное слово.


 
Kinder_   (2005-10-06 21:21) [2]

В книге по VB, о которой я говорил выше, приведено много советов таких, как:
постоянные значения лучше и правильнее хранить в константах; результаты функций, которые
несколько раз вызываются в программе, лучше сразу запомнить в переменную... и т.д
Вот я о чем


 
Virgo_Style ©   (2005-10-06 21:31) [3]

Kinder_   (06.10.05 21:21) [2]

Скорее всего, большую часть приемов, описанных в этой книге (или любой другой) можно спокойно использовать где угодно, а не только в VB...


 
Sergey_Masloff   (2005-10-06 21:39) [4]

Kinder_   (06.10.05 21:21) [2]
А в книге про которую говорю я описано почему так можно не делать (потому что обычно это сделает компилятор совершенно без твоего участия).


 
Lamer@fools.ua ©   (2005-10-06 23:55) [5]

>> Sergey_Masloff

Есть веСЧи, которые компилятор не может соптимизировать. Например, обращение через много точек. Когда я вижу код вроде этого, у меня рука начинает нащупывать несуществующий пистолет (правда, это скорее из-за плохой читабельности в первую очередь):

for I := 0 to a.b.c.Items.Count - 1 do
begin
  a.b.c.Items[I].Caption := "bla-bla-bla";
  a.b.c.Items[I].Name := "abc" + IntToStr(I);
  a.b.c.Items[I].Value := I;
  for J := 0 to a.b.c.Items[I].SubItems.Count - 1 do
  begin
     a.b.c.Items[I].SubItems[J].Caption := "bla-bla-bla";
     a.b.c.Items[I].SubItems[J].Name := "xyz" + IntToStr(J);
  end;
end;


 
Sergey_Masloff   (2005-10-07 05:58) [6]

Lamer@fools.ua ©   (06.10.05 23:55) [5]
>правда, это скорее из-за плохой читабельности
Тут я спорить не стану. Переписать нужно но не из-за скорости в первую очередь.


 
Lamer@fools.ua ©   (2005-10-07 08:46) [7]

>>Sergey_Masloff   (07.10.05 05:58) [6]

>Тут я спорить не стану. Переписать нужно но не из-за скорости в первую очередь.

Если такой код написан в части приложения, которая критична ко времени исполнения, то и из-за скорости.

Кстати, автор топика не говорит, о какой оптимизации идёт речь :o)
Я их знаю как минимум две: optimize for speed и optimize for code size.


 
Calm ©   (2005-10-07 09:42) [8]


> Для начала я бы посоветовал книгу МакКоннелла Code Complete
> (Совершенный код) в котором он совершенно справедливо (и
> на примерах) показывает почему оптимизацией не надо увлекаться.
>

Хорошая книга.
Совершенно справедливо для люобй оптимизации.


 
NightLord ©   (2005-10-07 09:45) [9]

Поищи на этом сайте, есть хорошая статейка название и адрес не помню =(


 
Jeer ©   (2005-10-07 09:47) [10]

Agner Fog - еще один взгляд на оптимизацию


 
begin...end ©   (2005-10-07 09:47) [11]

> NightLord ©   (07.10.05 09:45) [9]

http://delphi.vline.ru/articles/optimization.html

Эта? Тогда -- читать НЕ НАДО.


 
TUser ©   (2005-10-07 10:29) [12]

1. Так называемая "оптимизация кода" приведет к выигрышу во времени/памяти процента на 2. Может быть на 10. И если программа требует для работы времени, сравнимого со временем существования, например Вселенной, - тогда думать надо не об оптимизиции кода, а об оптимизации алгоритма.
2. Помимо скорости и памяти, у кода можно оценить также удобочитаемость. И простоту поддержки и модификации. ИМХО, - оно важнее, убедитлся на своем горьком опыте.


 
Игорь Шевченко ©   (2005-10-07 11:45) [13]

Программы пишутся для людей, а не для компьютера.


 
Mystic ©   (2005-10-07 15:22) [14]

Маляр Шлемиэль подрядился красить пунктирные осевые линии на дорогах. В первый день он получил банку краски, поставил её на дорогу, и к концу дня покрасил 300 метров осевой линии. "Отлично!" сказал прораб, "быстро работаешь!" -- и заплатил ему копейку.

На следующий день Шлемиэль покрасил 150 метров. "Мда, это, конечно, не так здорово, как вчера, но приемлемо." -- сказал прораб и заплатил ему копейку.

На следующий день Шлемиэль покрасил 30 метров. "Всего лишь 30!" заорал прораб. "Это никуда не годится! В первый день было в десять раз больше! В чём дело?"

"Ничего не могу поделать," -- говорит Шлемиэль. "Каждый день я ухожу всё дальше и дальше от банки!"

(ц) из http://russian.joelonsoftware.com/Articles/BacktoBasics.html

Если совсем никак не оптимизировать, то никакой производительности не хватит :) С другой стороны если оптимизировать каждую инструкцию то возрастет сложность сопросождения кода.

Вообще, лучшая оптимизация на уровне используемых алгоритмов. Так что почитай про различные структуры данных :)


 
GrayFace ©   (2005-10-07 19:25) [15]

Sergey_Masloff   (06.10.05 21:39) [4]
А в книге про которую говорю я описано почему так можно не делать (потому что обычно это сделает компилятор совершенно без твоего участия).

Компиллятор никогда не запомнит результат многократно вызываемой функции.


 
Sergey_Masloff   (2005-10-07 20:02) [16]

GrayFace ©   (07.10.05 19:25) [15]
Никогда не говори никогда. Об этом тоже у МакКоннелла написано. Когда прочтешь вернемся к этому обсуждению.


 
Lamer@fools.ua ©   (2005-10-07 21:15) [17]

>>GrayFace ©   (07.10.05 19:25) [15]

Это смотря какая функция. Если детерминированная (я использую понятие Transact SQL), то, в принципе, можно (и имеет смысл) запомнить.


 
GrayFace ©   (2005-10-08 10:36) [18]

> Об этом тоже у МакКоннелла написано. Когда прочтешь вернемся
> к этому обсуждению.

Дайте ссылку, plz.


 
Sergey_Masloff   (2005-10-08 11:34) [19]

GrayFace ©   (08.10.05 10:36) [18]
>>Дайте ссылку, plz.
www.books.ru
Ну или http://cc2e.com


 
Kinder_   (2005-10-08 12:26) [20]

>GrayFace ©   (08.10.05 10:36) [18]

http://dfni.dp.ua/books/load.php?ty=prg&PHPSESSID=51977a396db36cc6bef0d1ee4aa2119a



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

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

Наверх




Память: 0.52 MB
Время: 0.07 c
3-1126969360
810
2005-09-17 19:02
2005.10.30
Фильтрация таблицы DBF


14-1128491702
vidiv
2005-10-05 09:55
2005.10.30
Что лучше поставить на ноут?


6-1121204883
Atrion
2005-07-13 01:48
2005.10.30
Определить IP пользователей работающих с конкретным сервером


8-1117651080
dan
2005-06-01 22:38
2005.10.30
Прокрутка в DSPack


14-1128946381
NewWonder
2005-10-10 16:13
2005.10.30
Визитка группы :(