LINUX.ORG.RU

Рекомендую флаг: --no-segfaults

cocucka ★★★★☆
()

-O2 от -Os отличается парой тройкой флагов, практически не влияющих на результат. У clang есть -Oz, который реально влияет.

anonymous
()
Ответ на: комментарий от anonymous

gcc 10.2 plasma 5.22 -march=native -Ofast -pipe на i5 8265U 1.6ггц за три часа собирает весь plasma-meta. с турбобустом быстрее, но я никуда не спешу, а процессор жалко.

fadi1s
() автор топика

что будет быстрее: -Ofast или -Os?

-Ofast включает все оптимизации -O3 + некоторые не особо безопасные оптимизации.

-Os просто включает все оптимизации -O2 кроме тех, которые раздувают финальный размер исполняемого файла.

генту вики всё ещё рекоммендует -О2

И правильно делает. К -O2 обычно добавляют -march конкретно для CPU и всякие vectorize-флажки.

про flto … вообще ни слова.

https://wiki.gentoo.org/wiki/GCC_optimization#Link_Time_Optimization_.28LTO.29

так как собрать самую быструю плазму?

Не заниматься ерундой и использовать бинарные пакеты.

Помнится мне забавный случай на ЛОРе когда какой-то неофит-джентушник натолкал всех этих -O3 и -march и на выходе в итоге p7zip в его Gentoo работал в два раза медленнее такого же p7zip который собрали мейнтейнеры Fedora (тестировалось на одном железе, у него был дуалбут с Fedora). Другой случай – когда очередной джентушник так наооптимизировал себе ядро, что отключил SMP и полгода-год сидел на одном ядре CPU, жалуясь на нехорошую Mozilla, которая добавила Rust и компиляция Firefox выросла на несколько часов.

Надо бы добавить ссылки на эти эпичные треды на Лурк, если их уже не добавили. Ну и да:

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

CFLAGS="-march=core-avx2 -mcpu=core-avx2 -pipe -O9 -frename-registers -fno-thread-jumps -fno-omit-frame-pointer -mieee-fp -finline-limit=600 -mno-push-args -fno-signaling-nans -malign-double -fno-defer-pop -fno-cprop-registers -maccumulate-outgoing-args -fno-if-conversion2 -fno-gcse -fno-expensive-optimizations -fno-optimize-sibling-calls -fno-regmove -fno-schedule-insns"

В результате сего действа задрот как правило получает +5% к общей производительности системы и 100500 непонятных невоспроизводимых багов, после чего лезет в интернеты излить свою ненависть. Официальный мануал рекомендует безопасные наборы флагов, которые выглядят довольно скромно [2]. А лучше вообще включить только только -march=native и -O2, а дальше компилятор сам разберётся.

Gentoo – Lurkmore

EXL ★★★★★
()
Последнее исправление: EXL (всего исправлений: 1)
Ответ на: комментарий от EXL

ну это понятно, что наоптимизировать можно всё что угодно. но всё же немножко надоело по 4 секунды ждать, пока запустится dolphin, хотя на плазме 5.10 он на этом же железе укладывается в пол секунды.

про действия флагов мне понятно, хендбук тоже читать умею. мне больше интересно, что на практике быстрее: Os с его компактными файлами, которые просто меньше памяти жрут и потому быстрее загружаются, или Ofast, с которым размер файлов будет существенно больше, а вот скорости работы…?

fadi1s
() автор топика

Думаю, для плазмы особой разницы нет, что там за флаги, это же не библиотека кодирования видео, криптографии, сжатия или чего-то там ещё. Всего лишь отрисовка интерфейса.

Лучше -O2, c -Os бывают редкие проблемы.

BattleCoder ★★★★★
()
Ответ на: комментарий от fadi1s

мне больше интересно, что на практике быстрее: Os с его компактными файлами, которые просто меньше памяти жрут и потому быстрее загружаются, или Ofast, с которым размер файлов будет существенно больше

При -Os отличия в размерах мизерные. К тому же программы достаточно быстро загружаются в память, Dolphin про который ты говоришь, запускается так долго не потому что долго разворачивает в память требуемые ему разделяемые библиотеки, а наверняка потому что перед стартом читает и парсит кучу конфигов и базы данных каких-нибудь превьюшек и пр.

В теории -Ofast конечно будет быстрее. Но и всяких багов он может подложить поболее, чем -Os.

можно чуть подробнее про -Oz? чет не гуглится

Чтобы правильно гуглилось, нужно экранировать минус в строке поиска Google: https://www.google.com/search?q=Clang+\-Oz

EXL ★★★★★
()
Ответ на: комментарий от EXL

вот это уже ближе к тому, что я хотел получить в ответ.

вопрос возник в т ч потому, что как-то раз ядро компилил с -Ofast. хорошее получилось ядро, ничего не скажешь. работало и вроде даже без багов. вот только размер папки modules переваливал за 4гб. и, очевидно, если какой-то прирост производительности и был, то скоростью загрузки модулей и занимаемым обьёмом оперативы всё нивелировалось

fadi1s
() автор топика
Ответ на: комментарий от fadi1s

работало и вроде даже без багов. вот только размер папки modules переваливал за 4гб

Ты все модули что ли собирал? Так много не должно быть.

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

Они же не все загружаются.

EXL ★★★★★
()

генту вики всё ещё рекоммендует О2

Пздц, ну так выполняй рекомендации!

anonymous
()

флаги там уже давно не важны, так как плазма тормозит из-за QML/JS Engine, а не плюсового кода, точно также как гном щель и все ее производные в виде циннамона написаны на JS.

bhfq ★★★★★
()
Последнее исправление: bhfq (всего исправлений: 1)
Ответ на: комментарий от anonymous

где-то в соседней теме (по тегам) речь шла о том, что эти рекоммендации на пару (десятков) лет устарели, и что начиная с gcc7 или 8 можно и O3 и Ofast на всю систему ставить, и даже вроде будет быстрее.

fadi1s
() автор топика
Ответ на: комментарий от fadi1s

-Ofast точно не надо на всю систему. -O3 скорее всего можно, но придётся для пары пакетов исключения сделать. а вообще, ничего из этого вручную делать не надо, а просто задействовать gentooLTO, если есть такое желание.

eternal_sorrow ★★★★★
()

переписать с нуля. флагами там, где о производительности изначально не заботятся, ты принципильно ничего не поменяешь, оно будет тормозить в sleep(), условно говоря

anonymous
()

-O2 это -Os с но выравниванием кода, смотреть -falign*, тк цп вроде как блоками кэширует или что там мне неизвестно производительность быстрее в итоге.

-Ofast и -O3 усложняют код, или приводят к ошибкам на некоторых цп или софте вроде как
-O3 и -Ofast не тестируют прост и никто не знает как оно поведет себя у разных людей и пк имхо

nanosecond
()
Последнее исправление: nanosecond (всего исправлений: 6)

А у тебя плазма где-то тормозит?

Предлагаю не сражаться с ветряными мельницами.

Kroz ★★★★★
()
Ответ на: комментарий от EXL

интересно, кстати, что 4 секунды он загружается на opensuse и кубунту, и содержимое папок тоже прогружает где-то до пол секунды. на генту существенно быстрее оба действия, хотя собрано было для generic с -O2

fadi1s
() автор топика
Ответ на: комментарий от fadi1s

надоело по 4 секунды ждать, пока запустится dolphin

debian, окно дельфина появляется сразу после нажатия пиктограммы (задержка - доли секунды)

anonymous
()

что будет быстрее: -Ofast или -Os?

Многопоточный быстрый процессор с 16gb ram и ssd, либо арендовать отдельную сборочную ферму.

xDShot ★★★★★
()
Ответ на: комментарий от luke

Справедливости ради для, квин падает (но сразу поднимается) после выхода из suspend’а (nvidia, вместо вк).

anonymous
()
Ответ на: комментарий от anonymous

Кстати, надо попробовать на моем tp R50P запустить кеды от Патрика, глянуть, сколько там Долфин открывается…

luke ★★★★★
()
Ответ на: комментарий от Kolya95

1: Тот самый случай, когда -O3 или -Ofast генерирует более медленный код, чем рекомендованный везде -O2:

Nginx вы предпочитаете собирать из исходников или использовать готовые бинарники? (комментарий)
Как из стабильного Debian'а сделать Gentoo

2: Гореоптимизаторщик Gentoo дооптимизировался:

Оптимизация генты и одержимость компиляцией

EXL ★★★★★
()

неужели никто сам на плазме не сидит и не может рассказать про свой опыт?

fadi1s
() автор топика
Ответ на: комментарий от EXL

В теории -Ofast конечно будет быстрее.

неправда ваша, дядь. прилично так тупит, общая отзывчивость ниже в полтора - два раза (это хорошо заметно, если поставить проц в 400мгц и сравнить). с O2 быстрее.

Но и всяких багов он может подложить поболее

а тут правда. dolphin крашится, если курсор навести на файл картинки… это так, если кому интересно

fadi1s
() автор топика
Ответ на: комментарий от fadi1s

неужели никто сам на плазме не сидит и не может рассказать про свой опыт?

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

неправда ваша

Потому и написал, что в теории, а дальше привёл ссылки с примерами где -Ofast и -O3 генерируют более медленный код, чем -O2.

EXL ★★★★★
()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.