|
|
Возраст: 36 C нами с 22.01.2006 Репутация: 256.8
|
|
В man описаны только ключи -Os, -O1 -O2 -O3. В тоже время, достоверно известно, что MPlayer использует ключ -O4 при сборке. Вопрос - есть ли такие ключи (или они просто игнорируются) и, если есть, что они означают. Собственные поиски результатов не дали.
|
|
|
|
|
|
|
|
Возраст: 35 C нами с 04.02.2005 Репутация: 121.3
|
|
Простая проверка (побайтовое сравнение результатов) показала, что -O4 есть то же самое, что и -O3. Вместо числа 4 можно поставить любое другое.
Видимо, ключ -Ox (где x — чилсо) — общепринятая опция среди компиляторов для обозначения уровня оптимизации. Так как в gcc этих уровней всего три, число, большее тройки, дает тот же результат.
|
|
|
|
|
|
|
|
Возраст: 36 C нами с 22.01.2006 Репутация: 256.8
|
|
chaser, оригинальный метод
Как-то не догадался. Спасибо. Вобщем то так и предполагалось, только вот были сомнения между игнорированием и -O3.
|
|
|
|
|
|
|
|
C нами с 15.04.2005 Репутация: 133.2
|
|
chaser писал(а): |
Простая проверка (побайтовое сравнение результатов) показала, что -O4 есть то же самое, что и -O3. Вместо числа 4 можно поставить любое другое.
|
Вовсе необязательно этот метод (побайтовое сравнение с разными ключами) даст достоверный результат. Во-первых, исходный код программы должен содержать _все_ гипотетически оптимизируемые конструкции, во-вторых применимость тех или иных методов оптимизации сильно зависит от их контекста.
Впрочем, если проверка ключей -O3 и -O4 на некотором количестве (скажем десятке) случайно выбранных типовых исходников показала их побайтовое совпадение то, даже в случае различия уровней оптимизации этих ключей можно говорить о низкой целесообразности применения ключа -O4.
|
_____________________________ Время не существует, у него нет физического носителя в природе. Его выдумал человек, чтобы измерять скорость.
|
|
|
|
|
|
|
Возраст: 36 C нами с 22.01.2006 Репутация: 256.8
|
|
А надо проверить на самом mplayer - там то они врядли зря стоят. Если только в рассчёте на другие компиляторы.
|
|
|
|
|
|
|
|
Возраст: 37 C нами с 02.02.2006 Репутация: 86.7
|
|
Где-то вообще читал, что gcc использует ключи аж до -O9, но это уже что-то из разряда мифологии :)
|
|
|
|
|
|
|
|
C нами с 15.07.2005 Репутация: 133.9
|
|
Способен ли gcc использовать многопоточность при компиляции? Какие ключи надо добавить? Взгляните на скриншот. Мне показалось, что исходники компилятся по-очереди на каждом ядре (core).
P.S. Компилилось ядро 2.6.22-6.
|
_____________________________ С дивана видно всё, ты так и знай!
|
|
|
|
|
|
|
C нами с 15.04.2005 Репутация: 133.2
|
|
Сам gcc естественно не использует многопроцессорность и выполняется в один поток (это вообще не его проблемы). А вот make -jN может запускать несколько копий gcc одновременно для разных файлов. N обычно делают "число процессоров (ядер) + 1". На ноуте у меня двухядерный проц и я ставлю -j5, работает немного быстрей чем -j3, но это видимо связано с медленным винчестером, пока первые компиляца он остальные тупо насасывает в память
|
_____________________________ Время не существует, у него нет физического носителя в природе. Его выдумал человек, чтобы измерять скорость.
|
|
|
|
|
|
|