Достала студия

Тема в разделе "LANGS.C", создана пользователем freeq, 9 май 2010.

  1. expert

    expert New Member

    Публикаций:
    0
    Регистрация:
    19 янв 2009
    Сообщения:
    151
    /GL (Whole Program Optimization), отключается в опциях..
     
  2. qqwe

    qqwe New Member

    Публикаций:
    0
    Регистрация:
    2 янв 2009
    Сообщения:
    2.914
    green
    а совсем последние еще и напихают в код много чего своего.

    expert
    и линктайм компиляция/оптимизация. - особый эффект для кода не замечен пока. больше тормозит при компиляции, но разницы в генерируемом коде не замечал пока.
     
  3. green

    green New Member

    Публикаций:
    0
    Регистрация:
    15 июл 2003
    Сообщения:
    1.217
    Адрес:
    Ukraine
    expert
    IPO-оптимизации применятся и при отключенном LTCG, для статических (internal linkage) ф-ций.
     
  4. green

    green New Member

    Публикаций:
    0
    Регистрация:
    15 июл 2003
    Сообщения:
    1.217
    Адрес:
    Ukraine
    qqwe
    Что конкретно вы имеете в виду?
     
  5. qqwe

    qqwe New Member

    Публикаций:
    0
    Регистрация:
    2 янв 2009
    Сообщения:
    2.914
    green
    конкретно я? хм.. а вы не замечали? у меня щас нет компилята для примера. появится и не пропадет интерес - могу показать.

    впрочем, простой пример - скомпильте проект с оптимизацией cl 2003 и 2008. сравните результат.
     
  6. green

    green New Member

    Публикаций:
    0
    Регистрация:
    15 июл 2003
    Сообщения:
    1.217
    Адрес:
    Ukraine
    qqwe
    Я 2003 пропустил, из 6-й сразу на 2005-ю (8-ю) перешёл. Качество кода существенно улучшилось.

    Пока что не рассматривал детально код, который делает VC++ 2010, но бинарники моего последнего проекта при переходе из 2008 на 2010 потеряли в размере около 4-5%.
     
  7. qqwe

    qqwe New Member

    Публикаций:
    0
    Регистрация:
    2 янв 2009
    Сообщения:
    2.914
    6тя есть. неплохой компилер, но иногда падал не вовремя. счас не установлен, потому вычеркиваем. 2005 не имею.
    есть 2003 и 2008. обе установлены и можно сравнивать результаты. -O1 у 2003 легче 2008. иногда серьезно. ессно, не хэловорды (в смысле кода много).

    2010 тоже есть. чтото подозрительно легкая. даже ультимат. не ставлю чтоб не сбить настроек того, что есть. выделить комп под нее пока не выходит. впрочем, 4-5% это мало все равно. 2003 плотнее компилит (например, инферно ему у меня собиралось в ~700кб).
     
  8. green

    green New Member

    Публикаций:
    0
    Регистрация:
    15 июл 2003
    Сообщения:
    1.217
    Адрес:
    Ukraine
    qqwe
    Интересно... попробую поэкспериментировать.
    Если есть возможность выложить кусок кода, на котором хорошо проявляется эффект, буду признателен.
     
  9. qqwe

    qqwe New Member

    Публикаций:
    0
    Регистрация:
    2 янв 2009
    Сообщения:
    2.914
    я ж сказал. инферно ему. но там нельзя оптимизировать несколько файлов. точнее заголовок омитить, тк он используется для самоотладки. пример почему в теме на пред странице. 2-3 файла. захотите мучить именно это, могу посмотреть какие

    и, да, студии ультиматные. не знаю как что школьные сделают.
     
  10. karabas_barabas

    karabas_barabas Member

    Публикаций:
    0
    Регистрация:
    9 авг 2009
    Сообщения:
    168
    to freeq
    если влом разбираться в настройках проекта - (хотя там все не так сложно) то нечего винить компилятор и visual studio
    ну или на края используй для своих асм-хаков
    Код (Text):
    1. __declspec(naked) int Hackfunction(DWORD param1, DWORD param2)
    2. {
    3.     __asm{ }
    4. }
     
  11. Z3N

    Z3N New Member

    Публикаций:
    0
    Регистрация:
    10 фев 2009
    Сообщения:
    812
    С 2010 бывает довольно весело, она как-то без объяснений вырезала один иф. Хорошо, что я тогда интересовался асм листингом и заметил, что она опускает его. В противном случает я бы долго думал почему не работает код.

    Ну, да, я так оформил иф, что компилер не понял, хотя с моей точки зрения было всё нормально (в асме провернул бы за пару строчек), а студия не поняла юмора.

    Признаю, был неправ, но она могла хотя бы варнинг состряпать???
     
  12. freeq

    freeq New Member

    Публикаций:
    0
    Регистрация:
    2 дек 2008
    Сообщения:
    47
    karabas_barabas
    вы вобще топ читали?

    ---
    решил проблему следующим образом, заметил что можно указать в настройках проекта, что можно оптимизировать только те функции которые inline, соответсвенно те которые она трогает, делать __stdcall.
     
  13. freeq

    freeq New Member

    Публикаций:
    0
    Регистрация:
    2 дек 2008
    Сообщения:
    47
    ссори за бред выше что я написал, кстати ничего не помагает, раз от раза как повезет, может перекомпилить опять с другим кодом.
     
  14. izl3sa

    izl3sa New Member

    Публикаций:
    0
    Регистрация:
    22 апр 2010
    Сообщения:
    164
    Адрес:
    Spb
    2freeq
    в задаче не пойдет делать убираемый объект глобальным? В этом случае естественно он не будет вырезан оптимизатором ).
    Но в любом случае, скорее всего прав оптимизатор и ваш трюк - грязный )
    Да. ИМХО конечно ))
     
  15. Phuntik

    Phuntik New Member

    Публикаций:
    0
    Регистрация:
    4 фев 2008
    Сообщения:
    318
    freeq
    Это вот этот код не мёртвый:
    Код (Text):
    1. int MyMain()
    2. {
    3.     TEST Test;
    4.  
    5.     Test.dwTemp_1 = 1;
    6.     Test.dwTemp_2 = 2;
    7.     Test.dwTemp_3 = 3;
    8.  
    9.     return 0;
    10. }
    ?
    И где же используется Test ? Что-то из вашего MyMain этого не видно.
    Повторяю, не первый год студию используете, а простых вещей не знаете. Ещё и упорствуете в своём невежестве.
     
  16. freeq

    freeq New Member

    Публикаций:
    0
    Регистрация:
    2 дек 2008
    Сообщения:
    47
    нет, это я кинул просто для "понятия" проблемы, сейчас студия не вырезает а например, идет первый
    Код (Text):
    1. if ( ... )
    2. {//после него второй
    3.    if ( ... )
    4.   {
    5.     //далее код
    6.   }
    7. }
    дык вот, сейчас она засовывает весь код который под вторым if, во второй if, т.е. вобще нарушает логику.
     
  17. cppasm

    cppasm New Member

    Публикаций:
    0
    Регистрация:
    18 июл 2006
    Сообщения:
    923
    Хватит уже писать чепуху.
    Или примеры конкртеные приводи.
    У всех всё работает как и должно, а у тебя "нарушает логику"...
     
  18. osox

    osox New Member

    Публикаций:
    0
    Регистрация:
    13 ноя 2009
    Сообщения:
    280
    если у Вас первый if например такой if(CONST_1)
    то зачем генерировать в коде лишнее условие проверку с константой а если переменная которая становится известной при выборе опции в меню к примеру то она должна оставить оба условия в которых есть такие выражения которые вычисляются при определенном событии в системе :)
     
  19. freeq

    freeq New Member

    Публикаций:
    0
    Регистрация:
    2 дек 2008
    Сообщения:
    47
    если выполнился первый if, а второй нет, то там идет break, просто забыл поставить, проблему это все равно не решает :)
     
  20. n0name

    n0name New Member

    Публикаций:
    0
    Регистрация:
    5 июн 2004
    Сообщения:
    4.336
    Адрес:
    Russia
    ну пример в студию, голословные утверждения не катят.