Gentoo Forums
Gentoo Forums
Gentoo Forums
Quick Search: in
Мои эксперименты с gentoo...
View unanswered posts
View posts from last 24 hours

 
Reply to topic    Gentoo Forums Forum Index Russian
View previous topic :: View next topic  
Author Message
f0rk
Apprentice
Apprentice


Joined: 15 Nov 2004
Posts: 273
Location: Moscow

PostPosted: Mon Nov 20, 2006 7:35 pm    Post subject: Мои эксперименты с gentoo... Reply with quote

Хочу поделиться своими результатами, которые я получил, играясь с оптимизацией gentoo.

Несколько лет назад я пытался ставить нестабильные слаги в CFLAGS, но в результате постоянно что-то не собиралось в итоге. :)
Поэтому я оставил это дело и долгое время у меня в make.conf стояло просто:
CFLAGS="-march=pentium3 -O2 -pipe"
CXXFLAGS="${CFLAGS}"
для лэптопа (и -march=pentium4 для десктопа соответственно)
Но сейчас опять что-то нашло (видимо это на уровне генокода) и на этот раз удалось! ;)
(для справки: версия gentoo текущая ибо emerge --sync ; emerge -uDN world делаю раз в 2 дня :) )
1. (Ядро) Сначало был переход с gentoo-sources -> no2-sources
Тут я экспериментировал в основном с scheduler'ами.
1.1 Включил preempt RCU.
1.2 Планировщик процессов - ingoshed (хотя разработчики хвалили staircase shed, но у меня с ним система работала чуть медленнее)
1.3 Планировщик I/O (ввода/вывода) - deadline. (пробовал и новый cfq, но видимых на глаз изменений в лучшую сторону не дало, а КДЕ стал грузиться медленнее)
Результат: С этим ядром КДЕ стал грузиться заметно быстрее. Система тоже стала работать пошустрее.
+ по мимо всего в это ядро входит патч suspend2 + патчи от mm-sources...
2. (Флаги)
Поменял флаги на:
LDFLAGSHASHSTYLE=" -Wl,--hash-style=both"
CFLAGS="-Os -march=pentium3 -frename-registers -fweb -pipe -fomit-frame-pointer -funit-at-a-time -freorder-blocks -fno-ident -freorder-blocks-and-partition -fgcse-sm -fgcse-las -fgcse-after-reload -fmerge-all-constants -combine -ftree-vectorize"
CXXFLAGS="${CFLAGS} -fvisibility-inlines-hidden"
LDFLAGS="-Wl,-O1${LDFLAGSHASHSTYLE}"
//прим.: флаги взяты от conrada: https://forums.gentoo.org/viewtopic-t-509252.html
Только для поддержки hashstyle обновил glibc и binutils до патченных 2.5 и 2.17.50.0.5 соответственно.
gcc-4.1.1 тоже обновил до gcc-4.1.1-r2 с патчем.
// ebuild'ы были взяты из оверлэя emission: http://svn.evolution-mission.org/toolchain_overlay
После чего последовал emerge -e world.
Собралось практически ВСЕ, за исключением python'а... :(
Но все остальное работало ощутимо быстрее. А питон решил оставить собранным как есть.
"Быстрота" измерялась эмпирическим путем, т.е. на глаз! ;)
Но есть и кое-какие численные результаты, полученные genlop'ом:

---------------- gcc 4.1.1: ------------------------------
Mon Oct 2 23:53:56 2006 >>> x11-libs/qt-4.1.4
merge time: 3 hours, 57 minutes and 11 seconds.
Fri Oct 27 08:10:21 2006 >>> kde-base/kdelibs-3.5.5-r5
merge time: 2 hours, 43 minutes and 41 seconds.
Mon Nov 13 11:35:14 2006 >>> media-libs/mesa-6.5.1-r1
merge time: 13 minutes and 40 seconds.
-------------------------end-----------------------------

---------------- gcc 4.1.1-r2 (patched) + flags ----------
Fri Nov 17 07:17:55 2006 >>> x11-libs/qt-4.1.4-r2
merge time: 3 hours, 23 minutes and 8 seconds.
Wed Nov 15 06:00:22 2006 >>> kde-base/kdelibs-3.5.5-r5
merge time: 2 hours, 9 seconds.
Fri Nov 17 02:30:06 2006 >>> media-libs/mesa-6.5.1-r1
merge time: 11 minutes and 32 seconds.
---------------------------------------------------------------

Получился выйгрыш во времени компиляции около 1-5 мин на относительно "легких" пакетах, а вот на qt_шных пакетах выйгрыш составил уже 40 мин. Что не могло не радовать. ;)

Собственно система: pentium-3 750Hz, 192 mb ram + 256 swap + винт Seagate 40 Gb 7200 об/мин

3. Upgrade GCC.
Перешел на gcc 4.3.0-alpha20061111.
Quote:
A new forward propagation pass on RTL was added. The new pass replaces several slower transformations, resulting in compile-time improvements as well as better code generation in some cases.

http://gcc.gnu.org/gcc-4.3/changes.html
Теперь python компилится без проблем! Никаких seg fault'ов.
Время компиляции еще уменьшилось:
Thu Nov 16 15:46:03 2006 >>> x11-libs/qt-3.3.6-r4
merge time: 2 hours, 1 minute and 29 seconds.
//старый gcc
Mon Nov 20 04:21:53 2006 >>> x11-libs/qt-3.3.6-r4
merge time: 1 hour, 17 minutes and 30 seconds.
// новый
Опять около 40-50 мин...
Правда сам этот gcc компилился на час дольше, чем предшественник + некоторые пакеты компилит на 1-2 мин дольше.
Но сборка qt-3 на 45 мин быстрее порадовала.
KDEшный приложения компилятся примерно столько же.
Так что не знаю, может это случайность с qt... ;)
Но зато все пакеты СОБИРАЮТСЯ, несмотря на несколько жесткие флаги.

4. Сборка nxsty's QT + kde-3.5.5 with KIP.
http://www.kde-look.org/content/show.php?content=16962
https://forums.gentoo.org/viewtopic-t-236593-highlight-kip.html - тут нашел ссылку на бета-ebuild к 3.5.5
Quote:

Description:
CONTENTS
1. Changed the plastik theme to draw a lighter line as listview branch.
2. Rounded selection in iconview (konqueror/kdesktop)*
3. A modern looking rubberband (gnome/xp semi-transparent style).*
4. Modified dialogs when in iconlist mode to highlight item on mouse over (mozilla-firefox).
5. Added a new konqueror sidebar look.
Idea from http://www.kde-look.org/content/show.php?content=17049
6. Now sidebar is saved per profile (bug 58580)
7. Fixed bug 88964 (Highlighting of files in Detailed List View does not
correspond to the area of activation).


http://tinyurl.com/9vhjf - patched qt:
Quote:

I modified the qt ebuild to build qt-copy instead of the official tarball. Qt-copy is a version of qt enhanced by the KDE devs with various fixes and optimizations. For ex. qt usually repaints a progressbar everytime it's updated but with qt-copy it only repains when necessary, and it also makes qt less dependant on slow fontconfig which should somewhat speed up the startup time for some apps. For more info about qt-copy check KDE SVN, especially the "patches" dir.

I also added a "risky" USE-flag that builds qt itself with visibility settings for even more space saving and performance. This breaks the ABI so it might be dangerous, hence the name, but it also might speed up qt quite a bit. Use at your own risk!! To enable symbol visibility for KDE, make sure you have gcc 4.1 or later and set the new "kdehiddenvisibility" USE-flag.


В итоге кде стал выглядеть симпатичней! ;)
Модный rubberband, полукруглое выделение надписей на иконках, новый sidebar, удобный поиск в меню, поиск в konq (как в огнелисе)...
Ну и еще немного уменьшилось время загрузки КДЕ и его приложений.

:idea:
Теперь КДЕ грузится за 4-5 секунды, когда оригинальный у знакомого на intel core duo грузится секунд 10-13... ;)
P.S. Также использую prelink ...
P.S.S:
Сейчас флаги стоят следующие:
CFLAGS="-march=pentium3 -O2 -pipe -fomit-frame-pointer -fno-ident"
CXXFLAGS="${CFLAGS}"
LDFLAGS="-Wl,-O1 -Wl,--as-needed -Wl,-z,now -Wl,--hash-style=gnu"
Ибо "знающие" люди сказали, что в CFLAGS много лишнего и выйгрыш в скорости идет в основном из-за LDFLAGS.

Вот так вот.
Если есть вопросы - задавайте, в силу своих возможностей попытаюсь ответить.
Back to top
View user's profile Send private message
akam
Tux's lil' helper
Tux's lil' helper


Joined: 04 Sep 2006
Posts: 82
Location: Nab. Chelny, Russia

PostPosted: Tue Nov 21, 2006 7:52 am    Post subject: Reply with quote

Если честно - боюсь переходить на gcc-4.1. Сейчас стоит 3.4.4 и все работает... :)
есть какие-нибудь действительно важные моменты для перехода?
Back to top
View user's profile Send private message
f0rk
Apprentice
Apprentice


Joined: 15 Nov 2004
Posts: 273
Location: Moscow

PostPosted: Tue Nov 21, 2006 9:14 am    Post subject: Reply with quote

Да вроде переход с 3.х на 4.1 происходит безболезненно...
p.s. А вот на 4.3 пока переходить все-таки рановато. Сегодня попытался собрать firefox - seg fault. :(
Back to top
View user's profile Send private message
Display posts from previous:   
Reply to topic    Gentoo Forums Forum Index Russian All times are GMT
Page 1 of 1

 
Jump to:  
You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot vote in polls in this forum