Имя:    Пароль:      Помнить меня       
Unsorted   ~  Software  ~  Linux and Unix  ~  Ключи оптимизации gcc -Ox, где x>3
splav
Сообщение  05 Фев 2007, 0:24  Ссылка : Ответить с цитатой
Возраст: 36 Пол: Мужской  Доверенный пользователь
C нами с 22.01.2006
Репутация: 256.8

В man описаны только ключи -Os, -O1 -O2 -O3. В тоже время, достоверно известно, что MPlayer использует ключ -O4 при сборке. Вопрос - есть ли такие ключи (или они просто игнорируются) и, если есть, что они означают. Собственные поиски результатов не дали.
В начало
Профиль : Фотоальбом : Блог : Личное Сообщение : JabberID : ICQ
chaser
Сообщение  05 Фев 2007, 22:04  Ссылка : Ответить с цитатой
Возраст: 35 Пол: Мужской 
C нами с 04.02.2005
Репутация: 121.3

Простая проверка (побайтовое сравнение результатов) показала, что -O4 есть то же самое, что и -O3. Вместо числа 4 можно поставить любое другое.

Видимо, ключ -Ox (где x — чилсо) — общепринятая опция среди компиляторов для обозначения уровня оптимизации. Так как в gcc этих уровней всего три, число, большее тройки, дает тот же результат.
В начало
Профиль : Фотоальбом : Блог : Личное Сообщение : JabberID
splav
Сообщение  05 Фев 2007, 22:09  Ссылка : Ответить с цитатой
Возраст: 36 Пол: Мужской  Доверенный пользователь
C нами с 22.01.2006
Репутация: 256.8

chaser, оригинальный метод Улыбочка
Как-то не догадался. Спасибо. Вобщем то так и предполагалось, только вот были сомнения между игнорированием и -O3.
В начало
Профиль : Фотоальбом : Блог : Личное Сообщение : JabberID : ICQ
Рыся
Сообщение  07 Фев 2007, 19:41  Ссылка : Ответить с цитатой
Пол: Мужской  Доверенный пользователь
C нами с 15.04.2005
Репутация: 133.2

chaser писал(а):
Простая проверка (побайтовое сравнение результатов) показала, что -O4 есть то же самое, что и -O3. Вместо числа 4 можно поставить любое другое.

Вовсе необязательно этот метод (побайтовое сравнение с разными ключами) даст достоверный результат. Во-первых, исходный код программы должен содержать _все_ гипотетически оптимизируемые конструкции, во-вторых применимость тех или иных методов оптимизации сильно зависит от их контекста.
Впрочем, если проверка ключей -O3 и -O4 на некотором количестве (скажем десятке) случайно выбранных типовых исходников показала их побайтовое совпадение то, даже в случае различия уровней оптимизации этих ключей можно говорить о низкой целесообразности применения ключа -O4.

_____________________________
Время не существует, у него нет физического носителя в природе. Его выдумал человек, чтобы измерять скорость.
В начало
Профиль : Фотоальбом : Блог : Личное Сообщение : E-mail : JabberID
splav
Сообщение  07 Фев 2007, 20:29  Ссылка : Ответить с цитатой
Возраст: 36 Пол: Мужской  Доверенный пользователь
C нами с 22.01.2006
Репутация: 256.8

А надо проверить на самом mplayer - там то они врядли зря стоят. Если только в рассчёте на другие компиляторы.
В начало
Профиль : Фотоальбом : Блог : Личное Сообщение : JabberID : ICQ
balodja
Сообщение  09 Фев 2007, 2:01  Ссылка : Ответить с цитатой
Возраст: 37 Пол: Мужской 
C нами с 02.02.2006
Репутация: 86.7

Где-то вообще читал, что gcc использует ключи аж до -O9, но это уже что-то из разряда мифологии :)
В начало
Профиль : Фотоальбом : Личное Сообщение
DStar17
Сообщение  23 Сен 2007, 16:17  Ссылка : Ответить с цитатой
Пол: Мужской  Доверенный пользователь
C нами с 15.07.2005
Репутация: 133.9

Способен ли gcc использовать многопоточность при компиляции? Какие ключи надо добавить? Взгляните на скриншот. Мне показалось, что исходники компилятся по-очереди на каждом ядре (core).
P.S. Компилилось ядро 2.6.22-6.

_____________________________
С дивана видно всё, ты так и знай!
В начало
Профиль : Фотоальбом : Блог : Личное Сообщение
Рыся
Сообщение  23 Сен 2007, 16:33  Ссылка : Ответить с цитатой
Пол: Мужской  Доверенный пользователь
C нами с 15.04.2005
Репутация: 133.2

Сам gcc естественно не использует многопроцессорность и выполняется в один поток (это вообще не его проблемы). А вот make -jN может запускать несколько копий gcc одновременно для разных файлов. N обычно делают "число процессоров (ядер) + 1". На ноуте у меня двухядерный проц и я ставлю -j5, работает немного быстрей чем -j3, но это видимо связано с медленным винчестером, пока первые компиляца он остальные тупо насасывает в память Смайлик

_____________________________
Время не существует, у него нет физического носителя в природе. Его выдумал человек, чтобы измерять скорость.
В начало
Профиль : Фотоальбом : Блог : Личное Сообщение : E-mail : JabberID
Показать сообщения:   

Unsorted   ~  Software  ~  Linux and Unix  ~  Ключи оптимизации gcc

Ответить на тему

Перейти:  





Powered by phpBB   © Unsorted Team  support@unsorted.me  promo@unsorted.me  Полезные скрипты