LINUX.ORG.RU
ФорумTalks

Почему в Ubuntu не делают кеша тем human и gnome?


0

0

Решил тут сократить количество вызовов open() при запуске gnome-system-monitor, исходил из информации starace -e open gnome-system-monitor
Результат - по умолчанию ~3700 вызовов open при запуске (после открытия окна делал тут же Alt+F4)
Поанализировав логи, сделал кеш иконок
sudo gtk-update-icon-cache /usr/share/icons/Human
sudo gtk-update-icon-cache /usr/share/icons/gnome
и сделал симлинк ru_RU.UTF-8 на ru в /usr/share/locale и других местах расположения locales (т.к каждый раз гном пробует инфу из locale, потом ru_RU.UTF8, ru_RU.utf8, ru.utf8, ..., только в самом конце ru)
---------------
Итого: gnome-system-monitor при старте делает ~2700 вызовов open(), время запуска: ранее 0.35 user time и 0.35 system time, после 0.25 user time и 0.25 system time

★★★★★

патч уже отослал?

anonymous
()

Напиши багрепорт. Убунта по моему мнению самый классный линукс и всем только будет лучше, если он станет ещё продуманней.

Corran_Horn
()

Непонятно в какой пакет слать патч/багрепорт. Кеш иконок в теме кде crystalsvg, например, не принадлежит никакому пакету

snizovtsev ★★★★★
() автор топика

В линуксе как и в виндовс вообще программы много файлов методом научного тыка исчуть, вопрос насколько это увеличит скорость?

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

Ну симлинк локали вряд-ли ускроение дал, большая часть я полагаю на кеш пришлась (головке диска не надо бегать туда-сюда в поисках png, когда можно считать всё сразу из кеша).

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

>Непонятно в какой пакет слать патч/багрепорт.

В пакеты, которые требуют gtk-update-... Вызов этот должен находится в 
скриптах *.postinst и *.postrm. Вот, например, 
openoffice.org-debian-menus.postinst:

  # update icon-cache if already present
  for theme in gnome hicolor locolor; do
    if [ -e /usr/share/icons/$theme/icon-theme.cache ] ; then
      # touch it, just in case we cannot find the binary...
      touch /usr/share/icons/$theme
      if (which gtk-update-icon-cache); then
        gtk-update-icon-cache /usr/share/icons/$theme
      fi
      # ignore errors (e.g. when there is a cache, but no index.theme)
      true
    fi
  done

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

> if (which gtk-update-icon-cache); then

хуясе. Я теперь понимаю почему apt-get dist-upgrade на core2duo чуть ли не всю жизнь работает.

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