Июн 10 2010

KDE/Qt

Published by

Винт

У KDE есть свой http кэш:

/var/tmp/kdecache-юзер/http

он постепенно разрастается и для его очищения периодически запускается kio_http_cache

это приводит к довольно сильной нагрузке на винт

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

избавиться от него можно только убрав доступ к /var/tmp/kdecache-юзер/http

-graphicssystem

Система, с помощью которой происходит отрисовка виджетов.

судя по обсуждению, наилучшие результаты показывает raster

для использования его по умолчанию необходимо собрать/пересобрать

x11-libs/qt-gui с USE флагом raster (gentoo)
начиная с qt-4.8 юз флаг raster отсутствует
для выбора служит

eselect qtgraphicssystem

в бинарных дистрах надо пересобрать

libqt/libqtgui4/или_другой_пакет_отвечающий_за_это (имя может отличаться в разных дистрибутивах)

Начиная с Qt4.7 и выше для автоматического переключения режима можно использовать пакет KCM Qt Graphics. После сборки/установки изменить режим можно в «Настройка системы — Qt Graphics System».
( Arch, Gentoo )
так же можно ничего не ставя, поменять значение переменной QT_GRAPHICSSYSTEM возможные значения — raster, native, opengl

export QT_GRAPHICSSYSTEM="значение"

для сравнения:
intel 945GME & atom N270(netbook)

native = 2.2445 msec
opengl = 1.24256 msec
raster = 0.787833 msec

nvidia 9400GT & core2duo E7200 (3.05GHz)

native = 0.307111 msec
opengl = 0.217222 msec
raster = 0.138222 msec

в роли бэнча использовался qtperf(в моём оверлее есть ebuild(layman -a stuff && emerge -avD qtperf))

Автостарт

При установке/обновлении KDE прописывает в автостарт ( /usr/share/autostart) кучу многим не нужных вещей:

органайзер, предзагрузку konqueror-а, kmix и его запоминание/восстановление уровня громкости, nepomuk…

некоторое из этого не отключить галочками в настройках (например nepomuk), поэтому, чтобы не запускать лишнего, удаляем ненужные /usr/share/autostart/*.desktop

P.S. для меньшего потребления памяти стОит попробовать prelink

nepomuk/strigi
для них можно сделать

echo  "fs.inotify.max_user_watches=524288" >> /etc/sysctl.conf

это должно ускорить индексацию изменившихся/новых файлов

29 responses so far

29 Responses to “KDE/Qt”

  1. unikumon 27 Сен 2010 at 21:14

    Можно также использовать альтернативный менеджер окон (вместо kwin), как то compiz или openbox. Многие пишут, что наблюдается значительный прирост, особенно на интегрированных видеокартах.

  2. megabakson 27 Сен 2010 at 22:14

    так естественно :)
    квин пока не годен

  3. unikumon 20 Окт 2010 at 10:17

    > graphicssystem
    Пересобирать не обязательно — есть интересная штука:
    http://kde-apps.org/content/show.php?content=129817
    позволяет в настройках системы переключать режимы, что позволяет в случае ошибок вернуться к дефолту.

  4. megabakson 20 Окт 2010 at 21:58

    да, но только с qt >=4.7.0 :)

  5. unikumon 05 Дек 2010 at 19:35

    Для тех кто пользуется Kwin можно посоветовать использовать движок XRandr вместо OpenGL (Настройки системы — Эффекты рабочего стола — Дополнительно — Движок). Многие отмечают, что XRandr работает гораздо быстрее, но он умеет рисовать не все эффекты (например, XRandr размытие).
    Стоит также отметить, что не на всех железках и не со всеми дровами этот эффект воспроизводится, поэтому лучшим вариантом будет самостоятельное определение оптимальных параметров на вкладке «Дополнительно».

  6. megabakson 27 Дек 2010 at 18:25

    prelink в KDE

  7. unikumon 22 Фев 2011 at 00:46

    Disable Akanodi
    В ~/.config/akonadi/akonadiserverrc изменить
    StartServer=true
    на
    StartServer=false
    и релогин.

  8. megabakson 22 Фев 2011 at 10:42

    ну у меня оно и так не стартует :)

    [ megabaks@desktop ] ~ $ ps aux | grep akonadi
    megabaks  3060  0.0  0.0   5416   772 pts/1    S<+  09:36   0:00 grep --colour=auto akonadi
    [ megabaks@desktop ] ~ $
  9. Annulenon 10 Мар 2011 at 13:13

    Правильнее всего юзать флаг -graphicssystem raster для автостарта плазмы. Стоит ли использовать растр для всего подряд (в особенности kwin) — вопрос спорный. Пересборка Qt с растром вообще не нужна, не пугай народ :)

  10. megabakson 10 Мар 2011 at 13:42

    не пугаю
    во-первых: изменять graphicssystem можно только в кутях >= 4.7 (без пересбоки и копания в конфигах)
    во-вторых: проще выставить юз и нигде больше не копаться
    в-третьих: с растром проблем нет
    а квин…ну ты и сам знаешь что я о нём думаю :3

  11. Annulenon 11 Мар 2011 at 13:19

    >во-первых: изменять graphicssystem можно только в кутях >= 4.7 (без пересбоки и копания в конфигах)

    http://doc.qt.nokia.com/4.5/qapplication.html

    «All Qt programs automatically support the following command line options:

    -graphicssystem, sets the backend to be used for on-screen widgets and QPixmaps. Available options are raster and opengl.»

    >во-вторых: проще выставить юз и нигде больше не копаться

    в бинарном дистре ни разу не проще :)

  12. Annulenon 11 Мар 2011 at 13:28

    а что ты предлагаешь вместо kwin?

  13. megabakson 11 Мар 2011 at 13:59

    compiz же
    и вообще это флуд )

  14. megabakson 11 Мар 2011 at 14:01

    «All Qt programs automatically support the following command line options:

    -graphicssystem, sets the backend to be used for on-screen widgets and QPixmaps. Available options are raster and opengl.»

    читай внимательней!

    в бинарном дистре ни разу не проще :)

    в бинарном можно модуль поставить для настройки
    и никаких копаний в коде и/или конфигах

  15. Annulenon 11 Мар 2011 at 19:26

    >в бинарном можно модуль поставить для настройки

    Ну так это тулза, которую ты нашел, требует 4.7, а сама настройка существует с 4.5

    >compiz же

    Тогда уж *box. Компиз по WM-фичам и рядом не стоял

    >в-третьих: с растром проблем нет

    Если бы не было, его бы в Qt (или в KDE, так как есть QApplication::setGraphicsSystem()) по дефолту включали. Не включают однако.

  16. megabakson 12 Мар 2011 at 07:35

    Компиз по WM-фичам и рядом не стоял

    не пори чушь

    Если бы не было, его бы в Qt (или в KDE, так как есть QApplication::setGraphicsSystem()) по дефолту включали. Не включают однако.

    ну нету проблем с растром — нету!

    Ну так это тулза, которую ты нашел, требует 4.7, а сама настройка существует с 4.5

    блин — ты хотя бы читаешь?
    ты хоть понимаешь что предлагаешь геморрой?

  17. Annulenon 28 Мар 2011 at 20:15

    Насчет qtperf: я на 100% уверен, что результаты для opengl некорректны, так как офф-скрин рендеринг для opengl может быть дороже прямого. Для остальных бэкэндов тоже лучше было бы производить отрисовку виджетов на экране, результаты зависели бы от видюхи и случайных факторов, но были бы ближе к реальности.

  18. megabakson 29 Мар 2011 at 20:54

    достаточно корректны — на практике растр шустрей

  19. reagentooon 13 Сен 2011 at 15:17

    Не торопитесь перебираться на raster. Посмотрите как рисуются виджеты:
    native
    raster

  20. megabakson 13 Сен 2011 at 16:55

    ради плазмы можно извернуться и запустить её с opengl, например
    зато в остальном получаем профит

  21. Ingvaron 22 Сен 2011 at 22:08

    спасибо за наводку на прелинк

    100 метров убрал (:

  22. Tollon 04 Дек 2011 at 01:05

    Сегодня позапускал qtperf с native raster. Результаты:

    $ ./qtperf4 -graphicssystem raster
    Total: 33.099998 s
    $ ./qtperf4
    Total: 10.277000 s

    qt-gui собран без флага raster, поэтому по умолчанию native.

    Получается, на моей машинке натив в 3 раза быстрее. Это забавно — везде в интернете пишут, что растр ощутимо быстрее.

    Еще забавнее, что результата тестов с опенгл у меня не хватило терпения дождаться — тест с линиями просто удручающе медленный, и виджеты рисуются коряво.

    Машинка — Asus 1215p, Atom 455, видео Intel.

  23. megabakson 04 Дек 2011 at 09:55

    qtperf случаем не 0.2.1?
    его криворукий набросал — его результаты легко опровергаются другими тестами

  24. Tollon 04 Дек 2011 at 13:34

    0.2.1. А чем лучше померять? Более других готовых тестов не нашел.

  25. megabakson 04 Дек 2011 at 14:01

    например первоqtperf
    в моём оверлее это 0.1 версия
    другие…да хоть ресайз окна

    #!/bin/bash
    export ID_WIN="$(xwininfo | grep "Window id" | cut -d\" -f2)"
    echo $ID_WIN
    x=1
    wmctrl -r "$ID_WIN" -e 1,-1,-1,1,1;
    time for i in `seq 1024`;do (( x++ ));wmctrl -r "$ID_WIN" -e 1,0,0,$x,$x;done

    только нужны wmctrl, xwininfo
    делаешь окно НЕ развёрнутым, запускаешь скрипт, тыкаешь крестиком в окно, наблюдаешь феерию на экране :3
    потом смотришь выхлоп
    софт запускай с разными QT_GRAPHICSSYSTEM=
    чем больше виджетов, тем лучше, например
    QT_GRAPHICSSYSTEM=raster krusader

  26. Tollon 04 Дек 2011 at 20:41

    Спасибо. Так результат больше похож на то, что пишут в интернетах:

    $ ktorrent -graphicssystem raster
    KTorrent

    real    0m30.127s
    user    0m4.352s
    sys     0m8.513s
    $ ktorrent -graphicssystem native
    KTorrent

    real    0m43.955s
    user    0m4.320s
    sys     0m8.648s

    Немного смущает, что в qtperf-0.2.1 примитивы с натив режимом даже на глаз заметно быстрее рисовались. Но, попробую включить юз-флаг растр и поработать с ним.

  27. megabakson 04 Дек 2011 at 20:57

    я ж говорю — это какой-то криворукий набросал наспех
    версия 0.2 вообще на утках зависала )

  28. Kharitonon 17 Янв 2013 at 11:48

    У меня памяти 6Г так я кэш в тмпфс засунул и убил двух зайцев и скорость повысилась,и место на диске освободил в рут партиции(что-то не хватает ее у меня там в последнее время…)))

  29. Клещon 29 Ноя 2013 at 18:05

    >избавиться от него можно только убрав доступ к /var/tmp/kdecache-юзер/http
    А

    kcmshell4 cache

    и снять флажок с «использовать кеш» не то?

Trackback URI | Comments RSS

Leave a Reply


*

Powered by WordPress