Форум программистов, компьютерный форум, киберфорум
С++ для начинающих
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.71/7: Рейтинг темы: голосов - 7, средняя оценка - 4.71
737 / 341 / 71
Регистрация: 10.06.2014
Сообщений: 2,357
1

Флаг компиляторов который -О

06.07.2017, 16:03. Просмотров 1461. Ответов 8
Метки нет (Все метки)

У компиляторов бывает флаг -О. Как правило после буквы идёт цифра, например -О2.
Это флаг оптимизации? Правильно ли я понимаю что чем выше цифра тем лучше оптимизацию делает компилятор?

Какие есть цифры для этого флага, что они делают и где можно прочитать об этом желательно на Русском, подскажите плиз.
Ну и если расскажете о том как сами пользуетесь этим флагом буду рад!
0
Programming
Эксперт
94731 / 64177 / 26122
Регистрация: 12.04.2006
Сообщений: 116,782
06.07.2017, 16:03
Ответы с готовыми решениями:

Почему если флаг состояния потока eof поднят, то флаг good опущен?
Почему если флаг состояния потока eof поднят, то флаг good опущен? Это нонсенс, друзья. Здесь...

Makefile, в который надо включить флаг -lm
Народ, помогите пожалуйста. Не могу скомпилировать файл, так как использую функцию fmod() из...

Нарисовать кораблик, который может поднимать флаг
Описать класс-родитель и класс-потомок, имеющие методы, указанные в со-ответствующем варианте...

Нарисовать на экране дисплея флаг РФ, Японский флаг
Нарисовать на экране дисплея флаг РФ, Японский флаг 300*200px Добавлено через 22 часа 20 минут ...

8
What a waste!
1576 / 1277 / 171
Регистрация: 21.04.2012
Сообщений: 2,677
06.07.2017, 16:31 2
Цитата Сообщение от Undisputed Посмотреть сообщение
Это флаг оптимизации?
Да (по крайней мере на большистве популярных компиляторов).
Цитата Сообщение от Undisputed Посмотреть сообщение
Правильно ли я понимаю что чем выше цифра тем лучше оптимизацию делает компилятор?
Нет. Как правило, чем выше цифра, тем агрессивнее оптимизация, - и это не значит автоматически "лучше".
И там не обязательно цифры (например, есть -Ofast, /Ox и тд. для разных компиляторов), это зависит от вендора - по сути у каждого свой набор опций (хотя где то он и совпадает). Вообще тут уже стоит обращаться к документации конкретного компилятора.
1
737 / 341 / 71
Регистрация: 10.06.2014
Сообщений: 2,357
06.07.2017, 16:45  [ТС] 3
gray_fox,
А можете дать ссылку для gcc? Пытался найти через гугл, не нашлось что то...

Добавлено через 11 секунд
gray_fox,
А можете дать ссылку для gcc? Пытался найти через гугл, не нашлось что то...
0
What a waste!
1576 / 1277 / 171
Регистрация: 21.04.2012
Сообщений: 2,677
06.07.2017, 16:48 4
Цитата Сообщение от Undisputed Посмотреть сообщение
расскажете о том как сами пользуетесь этим флагом буду рад!
gcc/clang для release build обычно -O2/-O3. Выборочно -Ofast, но тут надо быть поосторожнее (включает оптимизации для floating point, не соответствующие стандарту).

Добавлено через 11 секунд
Цитата Сообщение от Undisputed Посмотреть сообщение
расскажете о том как сами пользуетесь этим флагом буду рад!
gcc/clang для release build обычно -O2/-O3. Выборочно -Ofast, но тут надо быть поосторожнее (включает оптимизации для floating point, не соответствующие стандарту).
1
737 / 341 / 71
Регистрация: 10.06.2014
Сообщений: 2,357
06.07.2017, 16:50  [ТС] 5
https://gcc.gnu.org/onlinedocs... tions.html
Вот нашёл вроде это

Добавлено через 21 секунду
https://gcc.gnu.org/onlinedocs... tions.html
Вот нашёл вроде это
0
What a waste!
1576 / 1277 / 171
Регистрация: 21.04.2012
Сообщений: 2,677
06.07.2017, 17:07 6
Цитата Сообщение от Undisputed Посмотреть сообщение
Вот нашёл вроде это
Ну да, только учитывайте актуальную документацию для вашего компилятора (у вас ведь не gcc-4.8* ?).

Добавлено через 8 минут
И, вообще, все эти "O"-опции - определённые наборы более специфических опций - "настраивать" можно вплоть до специфической архитектуры процессора, набора команд SIMD и т.д.
1
Evg
Эксперт CАвтор FAQ
21130 / 8146 / 628
Регистрация: 30.03.2009
Сообщений: 22,460
Записей в блоге: 30
06.07.2017, 17:50 7
Цитата Сообщение от gray_fox Посмотреть сообщение
Как правило, чем выше цифра, тем агрессивнее оптимизация
При этом есть ещё один важный момент. Чем агрессивнее оптимизации, тем дольше работает компилятор (при этом не факт, что код получится быстрее). Для hello world'а разницы никакой, но когда проект компилируется часами, то разница ещё какая. При этом есть проекты, которые и долго компилируются, и долго исполняются. Промежуточные уровни оптимизаций обычно для них критичны на этапе разработки и отладки. Например, без оптимизаций компилируется 5 минут, но потом исполняется 20 минут. С оптимизациями -O3 компилируется 20 минут, зато исполняется 5 минут. С оптимизациями -O2 компилируется 10 минут, а исполняется 6 минут. Т.е. для разработчика появляется некий выбор в выборе наиболее удачного уровня оптимизаций. Но финальную сборку обычно проводят на максимальном уровне
2
What a waste!
1576 / 1277 / 171
Регистрация: 21.04.2012
Сообщений: 2,677
06.07.2017, 18:06 8
Цитата Сообщение от Evg Посмотреть сообщение
Но финальную сборку обычно проводят на максимальном уровне
Вот только максимальный уровнь оптимизации не всегда значит оптимальный - возможна деградация (например при агрессивном встраивании ф-ий).
0
Evg
Эксперт CАвтор FAQ
21130 / 8146 / 628
Регистрация: 30.03.2009
Сообщений: 22,460
Записей в блоге: 30
06.07.2017, 18:19 9
Да, бывает и такое. Редко, но бывает
0
IT_Exp
Эксперт
87844 / 49110 / 22898
Регистрация: 17.06.2006
Сообщений: 92,604
06.07.2017, 18:19

Заказываю контрольные, курсовые, дипломные и любые другие студенческие работы здесь.

Обзор компиляторов
Посоветуй, пожалуйста, на ваш взгляд самый удобный компилятор для новичков под виндус... чтобы...

Отличия компиляторов
Люди чем отличаются Visual Web Developer Express и Visual C++ ?

Версии компиляторов
Хелло, хочу спросить у более опытных линуксоидов, как узнать версию компилатора gcc, g++, php...?...

Конфликт компиляторов
Здравствуйте, я относительно недавно начал программировать, экспериментирую с созданием игр на...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
9
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2020, vBulletin Solutions, Inc.