Легенда:
новое сообщение
закрытая нитка
новое сообщение
в закрытой нитке
старое сообщение
|
- Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
- Новичкам также крайне полезно ознакомиться с данным документом.
А-а! :,,,,-O 03.09.03 16:05 Число просмотров: 1068
Автор: amirul <Serge> Статус: The Elderman
|
> Ну тут я так однозначно не могу сказать про > структурированность... Совсем недавно мне был > продемонстрирован примерчик, на котором шаблоны C++ > оказываются быстрее указателей на функции C... В общем, нет > уверенности. Ага, темплейтную функцию можно сделать inline-овой, кроме отстутствия оверхеда на вызов, компилер еще может и соптимизировать данный конкретный вызов, в том контексте куда вставлена функция. Раньше меня пугало то, что будет инстанцироваться сильно много шаблонов и это невероятно раздует код. Теперь я этого не боюсь :-)
> > 5) Старайтесь обходиться без условных и безусловных > > переходов. > Кстати, безусловные переходы иногда помогают оптимизировать > программу. ИНОГДА, говорю :) Потому что как ни крути, а > структурированность программы все же иногда (иногда!) > мешает. У самого Кнута, который ратовал за структурное программирование есть статья что то типа "Места, где использование goto приемлимо". Это вопрос вкуса, но можно пользоваться следующим правилом:
1) Переходить ТОЛЬКО вперед
2) Никогда не ВХОДИТЬ внутрь блока (выходить можно :-) )
Эти правила в частности разрешают использовать goto для выхода из вложенных циклов (использование флага и проверка на каждой итерации не кажется мне слишком изящной). В perl-е для этого вообще введена отдельная конструкция (метки циклов и break по метке). Кроме того лично я использую goto для обработки ошибок (вложенные if-ы тоже не кажутся мне слишком читаемыми), а метка fail: только добавляет читаемости и выносит обработку ошибок отдельно от основного потока исполнения. В том же C++ для этих целей есть exception-ы.
> > Научиться красиво писать программы также тяжело, как и > > писать красивые стихи, прозу, музыку... > Но красивая программа (не алгоритм) нередко оказывается > менее производительной. А мне кажется красота во всех проявлениях это отражение целесообразности. Именно поэтому можно рассуждать как о красоте человека (целесообразность оценивается подсознательно) так и о красоте программы, технического решения, математической конструкции и т.д.
А целесообразное решение как раз и означает эффективное.
> > С памятью та же фигня, примеры приводить не буду. Тем, > кому > > за 30, сами все помнят. > Тут достаточно быть за 20, кажется, чтобы такое помнить... > %-) Гы. Эт точно :-) Мне нет 30-ти, но я это помню
> > месяцев за те же деньги можно будет купить процессор > именно > > на этот десяток - другой процентов быстрее. > Но всем-то охота сейчас... > > Гонка вооружений.
> > Светлая эра наступит, когда программисты наиболее > > оптимальные алгоритмы применять начнут! Это был крик > души. > Я вторым голосом подвою %-) Уже не вторым, тут несколько подвываний уже замечено :-)
А интенсивное развитие начнется, когда уже ничего нельзя будет выжать экстенсивно. А сейчас это просто невыгодно. Зачем оптимизировать сейчас, если через год это все равно устареет и придется писать заново, а чересчур оптимизированные части по моим наблюдениями не очень часто болеют возможностью повторного использования в изменившихся условиях.
|
|
|