Нужны ли маленькие функции?

Тема в разделе "WASM.HEAP", создана пользователем _proteus, 10 окт 2008.

  1. _proteus

    _proteus Member

    Публикаций:
    0
    Регистрация:
    25 мар 2008
    Сообщения:
    192
    Адрес:
    Казань
    Уважаемые, как вы считаете, насколько целесообразно выделять участки кода, имеющие размер 2-3 строки, в отдельную функцию, если вызываться она будет максимум в 1-2 местах? Так ли важен "черный ящик", который отладил и забыл?
     
  2. DEEP

    DEEP Андрей

    Публикаций:
    0
    Регистрация:
    27 апр 2008
    Сообщения:
    491
    Адрес:
    г. Владимир
    Если не более чем в 4-5 местах - то нецелесообразно. Дёргать регистры/стэк, делать лишние джампы... нет, не надо. Вот когда число уникальных вызовов дойдёт хотя бы до десяти - тогда да.
     
  3. _basmp_

    _basmp_ New Member

    Публикаций:
    0
    Регистрация:
    10 июл 2005
    Сообщения:
    2.939
    _proteus
    если это не эксперимент или спецучасток, то по функциям, файлам разделяют для понятности. Компилер потом все хорошо проинлайнит сам.
     
  4. _proteus

    _proteus Member

    Публикаций:
    0
    Регистрация:
    25 мар 2008
    Сообщения:
    192
    Адрес:
    Казань
    Т.е. затраты, озвученные DЕЕР'ом, исчезнут?
     
  5. _basmp_

    _basmp_ New Member

    Публикаций:
    0
    Регистрация:
    10 июл 2005
    Сообщения:
    2.939
    _proteus
    а что стоит написать демку, скомпилить с оптимизацией, открыть в дебугере и посмотреть?
    В сложных проектах понимабельность очень важна.
     
  6. DEEP

    DEEP Андрей

    Публикаций:
    0
    Регистрация:
    27 апр 2008
    Сообщения:
    491
    Адрес:
    г. Владимир
    ЗЫ. А может быть, целесообразнее использовать макросы?
    Это избавляет как от необходимости забивать стэк и выполнять CALL/RETN, так и от раздумий "а нужно ли".
    Ответ: нужно!
    =)
     
  7. Barbos

    Barbos Slavon

    Публикаций:
    0
    Регистрация:
    13 ноя 2007
    Сообщения:
    280
    Адрес:
    Kharkov
    конешно целесообразней, но компиллер действительно может оптимизировать код.
     
  8. _basmp_

    _basmp_ New Member

    Публикаций:
    0
    Регистрация:
    10 июл 2005
    Сообщения:
    2.939
    DEEP
    в макросах нет контроля типов, если вы используете сложный макрос, то в виде функи при частом его употреблении компилер его инлайнить не будет. И еще при дебуганьи, даже без оптимизации на месте макроса будет некая куча кода.
    Странно, что вы проги пишете, а в дебугер не заглядываете. Что все сразу супер? Или глюком больше, глюком меньше?
     
  9. DEEP

    DEEP Андрей

    Публикаций:
    0
    Регистрация:
    27 апр 2008
    Сообщения:
    491
    Адрес:
    г. Владимир
    Именно. Только у нас не _куча_ кода, а всего пара строчек. Это две большие разницы.
    А в отладчик заглядывать приходится часто. Только я никогда не использую самописных макросов - пока жизнь не заставляет. Однако об общих принципах их работы я (надеюсь) осведомлён.
     
  10. UbIvItS

    UbIvItS Well-Known Member

    Публикаций:
    0
    Регистрация:
    5 янв 2007
    Сообщения:
    6.242
    не везде, но есть чёткая возможность определять функу как инлайн.