Т.е. в идеале надо как надо ставить пакеты в слаке, дабы они работали оптимизированно под оборудование - собирать из исходников свои txz/tgz?
Несколько вопросов по настройке
Т.е. в идеале надо как надо ставить пакеты в слаке, дабы они работали оптимизированно под оборудование - собирать из исходников свои txz/tgz?
Они в слакбилде из исходников и собираются, но с умолчальными опциями конфигурирования самой программы и под абстрактный процессор.
Для сборки под себя надо в слакбилде задать свои опции конфигурирования программы и свои опции компилятора и линковки
Резюме.
Пользуйтесь "su -", "su -l" вместо "su". gnome-terminal > su - > locale. От "просто su" будут и другие проблемы, например, принадлежащие root-у файлы в домашнем каталоге пользователя.
Спасибо за помощь и разъяснение, теперь все встало на на свой места. Будем дальше разбираться).
Renato Rosse, почитайте на досуге статью SergMarkovа об установке, настройке и оптимизации(там основы излагаются) slackware называется "Легкая slackware на пальцах".Мне статья очень понравилась написано понятно и по существу, за это ему огромное спасибо.
[quote=Renato Rosse]Т.е. в идеале надо как надо ставить пакеты в слаке, дабы они работали оптимизированно под оборудование - собирать из исходников свои txz/tgz?
Они в слакбилде из исходников и собираются, но с умолчальными опциями конфигурирования самой программы и под абстрактный процессор.
Для сборки под себя надо в слакбилде задать свои опции конфигурирования программы и свои опции компилятора и линковки[/quote]
Не нашел описание редактирования program.SlackBuild, и в частности SLKCFLAGS и архитектуры для оптимизации.
Подскажите, если знаете.
Спасибо за помощь и разъяснение, теперь все встало на на свой места. Будем дальше разбираться).
Renato Rosse, почитайте на досуге статью SergMarkovа об установке, настройке и оптимизации(там основы излагаются) slackware называется "Легкая slackware на пальцах".Мне статья очень понравилась написано понятно и по существу, за это ему огромное спасибо.
Перечитывал раз 50 эту статью :)
Не нашел описание редактирования program.SlackBuild, и в частности SLKCFLAGS и архитектуры для оптимизации.
Подскажите, если знаете.
Собственно там правятся следующие вещи
- что идет после ./configure - это опции самой программы
К примеру вот из darktable.SlackBuild
./configure \
--prefix=/usr \
--libdir=/usr/lib${LIBDIRSUFFIX} \
--sysconfdir=/etc \
--localstatedir=/var \
--mandir=/usr/man \
--build=$ARCH-slackware-linux \
Первое - куда ставится, остальное пути для составляюших пакета, это собственно что есть практически в любом слакбилде. Для простеньких программ этого вполне достаточно, более сложные имеют больше опций настройки. Чтобы узнать остальные опции конфигурирования распаковываем сорцы и в папке с ними набираем в терминале ./configure --help, смотрим опции и записываем в слакбилд.
Второе касается опций CFLAGS CXXFLAGS и LDFLAGS, это настройки компиляции и линковки под свой процессор. Тут к сожалению мало что вам могу сказать, поскольку у меня не X64. Посмотреть эти флаги для вашего процессора можно в вики гентушников, которые традиционно много внимания уделяют таким вещам.
Перечитывал раз 50 эту статью :)
И не помогло? Гуглить не пробовали на тему CFLAGS optimizations (на сколько я понимаю CFLAGS равносильно SLKCFLAGS, но могу ошибаться) или остается только одно читать и разбираться с GCC Optimize Options
Я, к примеру, не считаю, что разбираюсь в опциях компилятора лучше gcc и поэтому использую:
[console]
gentoo-laptop log # grep FLAGS /etc/make.conf
CFLAGS="-march=native -mtune=native -O2 -pipe"
CXXFLAGS=${CFLAGS}
[/console]
Оптимальные флаги находятся методом научного тыка :-) и последующим замером производительности
У меня к примеру это
-O3 -march=native -mtune=native -fomit-frame-pointer -pipe -msse4 -falign-jumps=1 -falign-labels=1 Тоже самое стоит и в опциях cmake и qmake. Но это только для конкретного компа и флаги выбраны по замерам производительности. Впрочем native pipe и fomit применимы и в самом общем случае. Единственно что с fomit нельзя пересобирать gtk. Да-да :-) -O3 это некошерно, но проблем с ним не имел, к тому же не сервер с доками на лямы баксов
Плюс, что давно ставят практически везде, но почему то не ставит Патрик
LDFLAGS="-Wl,-O1 -Wl,--as-needed
Второе касается опций CFLAGS CXXFLAGS и LDFLAGS, это настройки компиляции и линковки под свой процессор. Тут к сожалению мало что вам могу сказать, поскольку у меня не X64. Посмотреть эти флаги для вашего процессора можно в вики гентушников, которые традиционно много внимания уделяют таким вещам.
Например, здесь по-моему не шибко много этих флагов указывается, также в хэндбуке. И главное в этом деле не переусердствовать, а то как гласит народная мудрость с дури можно кое-что сломать).
И главное в этом деле не переусердствовать, а то как гласит народная мудрость с дури можно кое-что сломать).
Это да :-) Но в принципе есть самые общие флаги, native, pipe, fomit, остальное от лукавого и надо мерять производительность на конкретном компе с разными флагами
Немного не здесь, вот где флаги под процессор, они по линкам
http://en.gentoo-wiki.com/wiki/Safe_Cflags
но в принципе лучше не парить себе мозги и ставить native
to SergMarkov, не подскажите чем можно замерять производительность системы?
Теми программами, которые вы постоянно используете и замерять время исполнения типичных задач. Собственно это единственно корректный метод.
Скорость интерфейса можно померять gtkperf и qtperf
но в принципе лучше не парить себе мозги и ставить native
То есть получается native подтягивает все флаги под каждый тип процессора ?
То есть получается native подтягивает все флаги под каждый тип процессора ?
man gcc
-mcpu=cpu_type
...
Native Linux/GNU toolchains also support the value native, which selects the best architecture option for the host
processor. -mcpu=native has no effect if GCC does not recognize the processor.
-mtune=cpu_type
Set only the instruction scheduling parameters for machine type cpu_type. The instruction set is not changed.
Native Linux/GNU toolchains also support the value native, which selects the best architecture option for the host
processor. -mtune=native has no effect if GCC does not recognize the processor.
То есть получается native подтягивает все флаги под каждый тип процессора ?
Нет, не все, есть множество процессоронезависимых флагов
В принципе оптимальные флаги компиляции это далеко не единственный метод повышения производительности, такое же , если не большое значение имеет выбор оптимальных программ и настройка уже скомпилированных программ, При просмотре HD видео к примеру большой значение имеет выбор плеера с поддержкой многопоточности и vdpau, другой пример - вы можете великолепно откомпилировать IceWM, но если оставить в его темах gradient, которые авторы тем суют от лени куда не попадя, то тормозить на тяжелых темах он может едва ли не хуже четвертых кед.
Не нашел описание редактирования program.SlackBuild, и в частности SLKCFLAGS и архитектуры для оптимизации.
Подскажите, если знаете.
тыц
есть конечно много мнений на этот вопрос , но (!) - весьма существенное - то что выставлено по дефолту в(практически любом) слакбилде это практически золотая середина и дело не процессоре как таковом ( да будь он хоть десятиядерным турбо-монстром) дело в коде ! .. поясню :
... к примеру у вас corei7 и вы выкрутили "все ручки на красное" , выставили MAKEFLAGS="-j9" - превосходно ! вы надеетесь таким образом собрать Gnome3 за три часа - не надейтесь этого не будет , более того , то что без проблем за двенадцать часов собирается на дохленьком Целероне , на вашем монстре встанет колом через пять минут с какой нибудь потешной ошибкой и вы никогда не найдёте её причин . Вопрос почему ? Всё очень просто - те кто пишет софт , пишет его по вдохновению на том что есть и в 99% случаев "ложит с большим прибором" на ваши многоядерные монстры и параллелизм , поэтому не стоит возлагать большие надежды на то , что какой нибудь там Inkscape или VLC вдруг начнёт собираться в двадцать раз быстрее если запустить его в 9 нитей сборки - не факт что вообще соберётся , а если соберётся то будет правильно работать . Читайте доки на то что хотите собирать , как правило разработчики явно объявляют о поддержке многоядерности и параллелизма ...
Lupo Alberto, SergMarkov, теперь стало понятнее. Спасибо.
тыц
есть конечно много мнений на этот вопрос , но (!) - весьма существенное - то что выставлено по дефолту в(практически любом) слакбилде это практически золотая середина .
Ну :-) это как сказать вряд ли SLKCFLAGS="-O2 -march=i486 -mtune=i686"
и отсутствие LDFLAGS "золотая середина" для всех прог, для системных да, для прикладных вообще то под большим сомнением