Можно ли ускорить выполнение программ на процессоре atom n270 ?

Хорошо. Вечером, как приеду, проанализирую и постараюсь помочь Вам. Только отпишите обо всем, что я попросил.

QPushButton 0.548
QGroupBox 3.627
QSpinBox 0.674
QComboBox 0.708
QLineEdit 0.482
QSlider 0.782
QLineEdit 0.426
QWidget 2.05
QMenu 1.088
QCheckBox 0.391
QScrollBar 0.955
QLabel 0.148
QTextEdit 2.689
QListWidget 2.535
QTableWidget 2.762
QTreeWidget 3.57
QScrollArea 1.843
QToolBox 0.142

Score 1.41222

При переключении движка на XRender - всё нормализуется.
“Тормоза” наблюдаются только при использовании OpenGL.

http://paste.pocoo.org/show/485612/

Portage 2.1.10.11 (default/linux/x86/10.0/desktop/kde, gcc-4.5.3, glibc-2.12.2-r0, 2.6.39-gentoo-r3 i686)
=================================================================
System uname: Linux-2.6.39-gentoo-r3-i686-Intel-R-_Atom-TM-_CPU_N270_@_1.60GHz-with-gentoo-2.0.3
Timestamp of tree: Wed, 28 Sep 2011 16:15:01 +0000
app-shells/bash:          4.1_p9
dev-lang/python:          2.7.1-r1, 3.1.3-r1
dev-util/cmake:           2.8.4-r1
dev-util/pkgconfig:       0.26
sys-apps/baselayout:      2.0.3
sys-apps/openrc:          0.8.3-r1
sys-apps/sandbox:         2.4
sys-devel/autoconf:       2.13, 2.68
sys-devel/automake:       1.9.6-r3, 1.11.1
sys-devel/binutils:       2.20.1-r1
sys-devel/gcc:            4.4.6-r1, 4.5.3-r1
sys-devel/gcc-config:     1.4.1-r1
sys-devel/libtool:        2.4-r1
sys-devel/make:           3.82-r1
sys-kernel/linux-headers: 2.6.36.1 (virtual/os-headers)
sys-libs/glibc:           2.12.2
Repositories: gentoo
ACCEPT_KEYWORDS="x86"
ACCEPT_LICENSE="* -@EULA"
CBUILD="i686-pc-linux-gnu"
CFLAGS="-O3 -march=native -mtune=native -fomit-frame-pointer -pipe --param l1-cache-line-size=64 --param l1-cache-size=24 --param l2-cache-size=512 -mmmx -msse -msse2 -msse3 -mssse3 -ffast-math -mfpmath=both -fexcess-precision=fast -fmerge-all-constants -fno-gcse -funroll-all-loops -g0 -Wno-all"
CHOST="i686-pc-linux-gnu"
CONFIG_PROTECT="/etc /usr/share/config /usr/share/gnupg/qualified.txt /usr/share/themes/oxygen-gtk/gtk-2.0"
CONFIG_PROTECT_MASK="/etc/ca-certificates.conf /etc/env.d /etc/fonts/fonts.conf /etc/gconf /etc/gentoo-release /etc/sandbox.d /etc/terminfo"
CXXFLAGS="-O3 -march=native -mtune=native -fomit-frame-pointer -pipe --param l1-cache-line-size=64 --param l1-cache-size=24 --param l2-cache-size=512 -mmmx -msse -msse2 -msse3 -mssse3 -ffast-math -mfpmath=both -fexcess-precision=fast -fmerge-all-constants -fno-gcse -funroll-all-loops -g0 -Wno-all"
DISTDIR="/usr/portage/distfiles"
FEATURES="assume-digests binpkg-logs distlocks ebuild-locks fixlafiles fixpackages news parallel-fetch protect-owned sandbox sfperms strict unknown-features-warn unmerge-logs unmerge-orphans userfetch"
FFLAGS=""
GENTOO_MIRRORS="http://mirror.yandex.ru/gentoo-distfiles/ ftp://mirror.yandex.ru/gentoo-distfiles/"
LANG="ru_RU.UTF-8"
LC_ALL=""
LDFLAGS="-Wl,-O1 -Wl,--as-needed"
LINGUAS="ru"
MAKEOPTS="-j2"
PKGDIR="/usr/portage/packages"
PORTAGE_CONFIGROOT="/"
PORTAGE_RSYNC_OPTS="--recursive --links --safe-links --perms --times --compress --force --whole-file --delete --stats --timeout=180 --exclude=/distfiles --exclude=/local --exclude=/packages"
PORTAGE_TMPDIR="/var/tmp"
PORTDIR="/usr/portage"
PORTDIR_OVERLAY=""
SYNC="rsync://rsync2.ru.gentoo.org/gentoo-portage"
USE="X a52 aac acl acpi alsa berkdb bluetooth branding bzip2 cairo cdda cdr cli consolekit cosolekit cracklib crypt cups cxx dbus declarative dri dts dvd dvdr edit emboss encode exif fam firefox flac fortran gdbm gdu gif gpm gtk iconv ipv6 jpeg kde kipi lcms ldap libnotify mad mng modules motif mp3 mp4 mpeg mudflap nls nptl nptlonly ogg opengl openmp pam pango pcre pdf perl phonon plasma png policykit ppds pppd python qt qt3support qt4 raster readline sasl sdl semantic-desktop session slang spell sse sse2 sse3 ssl ssse3 startup-notification svg sysfs tcpd tiff truetype udev unicode usb vorbis wifi wireless x264 x86 xcb xcomposite xinerama xml xorg xscreensaver xulrunner xv xvid zlib" ALSA_CARDS="hda-intel" ALSA_PCM_PLUGINS="adpcm alaw asym copy dmix dshare dsnoop empty extplug file hooks iec958 ioplug ladspa lfloat linear meter mmap_emul mulaw multi null plug rate route share shm softvol" APACHE2_MODULES="actions alias auth_basic authn_alias authn_anon authn_dbm authn_default authn_file authz_dbm authz_default authz_groupfile authz_host authz_owner authz_user autoindex cache cgi cgid dav dav_fs dav_lock deflate dir disk_cache env expires ext_filter file_cache filter headers include info log_config logio mem_cache mime mime_magic negotiation rewrite setenvif speling status unique_id userdir usertrack vhost_alias" CALLIGRA_FEATURES="kexi words flow plan stage tables krita karbon braindump" CAMERAS="ptp2" COLLECTD_PLUGINS="df interface irq load memory rrdtool swap syslog" ELIBC="glibc" GPSD_PROTOCOLS="ashtech aivdm earthmate evermore fv18 garmin garmintxt gpsclock itrax mtk3301 nmea ntrip navcom oceanserver oldstyle oncore rtcm104v2 rtcm104v3 sirf superstar2 timing tsip tripmate tnt ubx" INPUT_DEVICES="keyboard mouse evdev" KERNEL="linux" LCD_DEVICES="bayrad cfontz cfontz633 glk hd44780 lb216 lcdm001 mtxorb ncurses text" LINGUAS="ru" PHP_TARGETS="php5-3" RUBY_TARGETS="ruby18" USERLAND="GNU" VIDEO_CARDS="intel" XTABLES_ADDONS="quota2 psd pknock lscan length2 ipv4options ipset ipp2p iface geoip fuzzy condition tee tarpit sysrq steal rawnat logmark ipmark dhcpmac delude chaos account"
Unset:  CPPFLAGS, CTARGET, EMERGE_DEFAULT_OPTS, INSTALL_MASK, PORTAGE_BUNZIP2_COMMAND, PORTAGE_COMPRESS, PORTAGE_COMPRESS_FLAGS, PORTAGE_RSYNC_EXTRA_OPTS

Олег, давайте немного скорректируем Ваши USE флаги:

Удалить: cosolekit (лишний, такого флага нет, но не спутайте случайно с consolekit - этот правильный)
Добавить: mmx (разрешает использование команд mmx при компиляции пакетов), spm (добавляет поддержку многоядерных процессоров), vaapi (включаем аппаратное ускорение видео и декодирование для intel).

Затем пересоберите пакеты, которые затронуты изменениями в USE флагах:

 # emerge -avtDN @system @world

После этого можно проверить возросла ли производительность.

Ух!.. А я и не заметил этот cosolekit (опечатка, конечно).
spm - я извиняюсь… Это точно не опечатка? Может, smp (symmetric multiprocessing)?

PS Кстати, N270, вроде, не настоящий двухъядерный (hyperthreading). Или компилятору это одинаково?

QPushButton 0.437
QGroupBox 3.56
QSpinBox 0.635
QComboBox 0.712
QLineEdit 0.436
QSlider 0.684
QLineEdit 0.441
QWidget 1.983
QMenu 0.932
QCheckBox 0.383
QScrollBar 0.848
QLabel 0.144
QTextEdit 2.649
QListWidget 2.508
QTableWidget 2.517
QTreeWidget 3.522
QScrollArea 1.776
QToolBox 0.148

Score 1.35083

Олег Воробьёв wrote:

QPushButton 0.437
QGroupBox 3.56
QSpinBox 0.635
QComboBox 0.712
QLineEdit 0.436
QSlider 0.684
QLineEdit 0.441
QWidget 1.983
QMenu 0.932
QCheckBox 0.383
QScrollBar 0.848
QLabel 0.144
QTextEdit 2.649
QListWidget 2.508
QTableWidget 2.517
QTreeWidget 3.522
QScrollArea 1.776
QToolBox 0.148

Score 1.35083

должно быть так примерно
смотри скриншот

Screenshot.png

Я догадывался, что должно быть…
Вопрос - КАК это сделать?

PS Похоже, придётся убирать все эти оптимизирующие флаги и пересобирать с исходными.

Олег Воробьёв wrote:

Ух!.. А я и не заметил этот cosolekit (опечатка, конечно).
spm - я извиняюсь… Это точно не опечатка? Может, smp (symmetric multiprocessing)?

PS Кстати, N270, вроде, не настоящий двухъядерный (hyperthreading). Или компилятору это одинаково?

Да я тоже опечатался - smp. В ядре должна быть включена поддержка гипертрейдинга (HT). А компилятору параллельно 1 или 2 ядра. Просто с HT при 2-х потоках производительность atom возрастет.

Евгений делись настройками :wink: У тебя либо не oxygen, либо процессор мощнее. Правильно?

Олег Воробьёв wrote:

Я догадывался, что должно быть…
Вопрос - КАК это сделать?

PS Похоже, придётся убирать все эти оптимизирующие флаги и пересобирать с исходными.

Евгений просто подшучивает скорее всего.
У меня Score при oxygen с включенным raster на видеокарте nvidia 9300M GS сейчас равен примерно 0,95.

Для oxygen это хороший показатель на atom n270. Без raster результат Score почти в 4 раза хуже.
Обсуждали тему raster здесь, в том числе я тестировал там новый egl.

qtperf-oxygen-800x469.png

Алексей Чуклимов wrote:

Евгений делись настройками :wink: У тебя либо не oxygen, либо процессор мощнее. Правильно?

CFLAGS="-O3 -fomit-frame-pointer -pipe -march=core2 -mtune=core2 --param l1-cache-size=32 --param l1-cache-line-size=64 --param l2-cache-size=1024 -mfpmath=both -mmmx -msse -msse2 -msse3  -mssse3 -fexcess-precision=fast -finline-functions -ftree-vectorize -fmerge-all-constants -fno-align-functions -funswitch-loops -fpredictive-commoning -fgcse-after-reload -fipa-cp-clone -fno-gcse -funroll-all-loops -g0 -Wno-all -mcx16 -msahf"
CXXFLAGS="${CFLAGS}"

#---------------------
 # Ускорение компиляции
#---------------------
 # Количество параллельных процессов, запускаемых при установке пакета.
MAKEOPTS="-j3"

 # Количество пакетов для одновременной сборки.
EMERGE_DEFAULT_OPTS="--jobs=1"

 # Дополнительная оптимизация
FEATURES="ccache fixlafiles fixpackages news parallel-fetch"
CCACHE_DIR="/var/tmp/ccache"
CCACHE_SIZE="5G"

USE="glibc-omitfp raster mmx smp sse sse2 sse3 ssse3 sox truetype video_cards_radeon djvu v4l2 v4l -mmxext -sse4 -sse4a -sse4_1 -sse5 -vnc -gps -ibm -ieee1394 -3dnow -3dnowext -3dfx -ios -ipod -pda -ipv6 -lirc -accessibility -hal -firefox3 -handbook -altivec -apache2 -bsf -chasen -cjk"

ALSA_CARDS="hda-sis966"

INPUT_DEVICES="keyboard mouse synaptic evdev"

VIDEO_CARDS="radeon vesa v4l v4l2" 

GPSD_PROTOCOLS=""

LINGUAS="en ru"

Евгений Савченко wrote:

Алексей Чуклимов wrote:

Евгений делись настройками :wink: У тебя либо не oxygen, либо процессор мощнее. Правильно?

Забыл добавить, что gcc и glibc пересобраны с -ffast-math

Это всё замечательно - ускорение копмиляции и пр.
Но у меня-то другая проблема!
После всех этих оптимизаций перестал нормально работать движок OpenGL!
С Xrender - всё “летает”, а переключишься на OpenGL - “Графические эффекты работали слишком медленно и были отключены…”.

Олег Воробьёв wrote:

Это всё замечательно - ускорение копмиляции и пр.
Но у меня-то другая проблема!
После всех этих оптимизаций перестал нормально работать движок OpenGL!
С Xrender - всё “летает”, а переключишься на OpenGL - “Графические эффекты работали слишком медленно и были отключены…”.

Хорошо, но у меня все работает. Будем смотреть почему у Вас нет? Подчеркну все настройки, предложенные мной, РАБОЧИЕ на атоме. Ладно это все лирика.

Если хотите продолжать, то для начала, сделав копию каталога ~/.kde4, удалите его, сбросив все таким образом настройки кде и перезагрузите компьютер. У меня случалось разок такая же ситуация, после этого должно все заработать. Если нет, верните каталог .kde из архивной копии обратно и высылайте xorg.conf будем смотреть что не так. И не паникуйте)

Евгений, а какая модель компьютера и процессор у Вас?

Алексей Чуклимов wrote:

В ядре должна быть включена поддержка гипертрейдинга (HT).

Она включена. При загрузке два пингвинчика в углу высвечиваются (или это не показатель?).

Алексей Чуклимов wrote:

И не паникуйте

Да я, собственно, и не паникую…
В общем-то, можно обойтись и без “колышущихся окон”. На недобуке это не очень-то актуально. Просто интересно, почему именно OpenGL “отвалился”?

Алексей Чуклимов wrote:

высылайте xorg.conf

А у меня его и вовсе нет. Всё работало без него (неоднократно натыкался в инете на инфу, что новые версии X-сервера в конфиге совершенно не нуждаются).
Попробовал вставить сгенерированный по "Xorg configure", разницы никакой.

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

Проверим поддержку нескольких ядер:

cat /usr/src/linux/.config | grep SCHED_MC

Проверим поддержку гипертрейдинга:

cat /usr/src/linux/.config | grep SCHED_SMT

Олег Воробьёв wrote:

В общем-то, можно обойтись и без “колышущихся окон”. На недобуке это не очень-то актуально. Просто интересно, почему именно OpenGL “отвалился”?

Попробуйте мой совет с каталогом .kde4 - 90%, что дело в этом.

Алексей Чуклимов wrote:

90%, что дело в этом.

Спасибо, попробую. Вот пересборка закончится…