Текущий архив: 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.49 MB
Время: 0.063 c