Скорость выполнения кодаси

Тема в разделе "Микроконтроллеры AVR", создана пользователем parovoZZ, 19 ноя 2018.

Метки:
  1. parovoZZ

    parovoZZ Гуру

    Вопрос вопросов!
    Какой код будет выполняться быстрее?
    Этот
    Код (C++):
    void func (void)
    {
          if !flag return;

           ......
    }
    или этот
    Код (C++):
    void func (void)
    {
         if flag
         {
              ......
         }
    }
     
  2. ИгорьК

    ИгорьК Гуру

    Чего только не придумаешь, чтобы обещанный код не показывать...
     
  3. DIYMan

    DIYMan Guest

    Зависит от оптимизатора, в общем случае, с вероятностью 90% - одинаково.
     
    DetSimen нравится это.
  4. parovoZZ

    parovoZZ Гуру

    что это?
    оптимизатор на скорость кода. Дизасм смотреть? Ну ОК.)) А я думал вы знаете)))
     
  5. ИгорьК

    ИгорьК Гуру

    Это про ту железку, что лежит у вас на балконе.
     
  6. DIYMan

    DIYMan Guest

    Ну да, в общем случае - смотреть ассемблерные листинги, чудес не завезли: если хочешь убедиться, то надо анализировать в конкретных окружениях.

    И да: оптимизатор - не только за скорость кода, тащемта. И не был он никогда только за скорость кода. Но в контексте заданного вопроса считаем, что включена оптимизация по скорости, далее - смотреть, менять настройки оптимизатора, смотреть, повторить до полного удовлетворения.

    Если вопрос сугубо академический - такой же и ответ, собственно. Остальное - зависит от специфики практически всегда.
     
  7. parovoZZ

    parovoZZ Гуру

    да расскажу в ближайшее время. Сейчас дочь, жена, работа...Я сейчас еще пару проектов тяну - один не мой, другой мой. В перерывах пытаюсь коллеге с настройкой видяхи помочь.
     
  8. parovoZZ

    parovoZZ Гуру

    Есть же 3 уровня оптимизации по скорости выполнения. Он ещё что-то оптимизирует? Где-то можно почитать?
    Нашел
    https://gcc.gnu.org/onlinedocs/gcc/Optimize-Options.html
    Устанешь читать((
     
  9. DIYMan

    DIYMan Guest

    Отож ;) Там кучу всякого наколбашено: там тебе и инлайнинг, как по размеру функций, так и безусловный, и оптимизация циклов, и ещё чёрт ногу сломит.