Разработчики Ubuntu сделали важное открытие: оказывается, существенного ускорения загрузки и последующей работы приложений GNOME можно достичь особым образом отформатировав конфигурационные XML-файлы, удалив оттуде все лишние пробелы и переводы строк.
Скрипты для оптимизации Rhythmbox, Evolution, Open Office и gconf прилагаются.
> Я давно говорил, что пихать xml повсюду - глупо. Нет, не верили :)
И не верим в большинстве случаев. Пиарщиков из Ubuntu за серьёзных людей никто не считает (разве что нищие любители халявы). Вон, в рассылке KDE неприкрыто извеваются над из Rosetta. Клоуны, мля! :)
> И не верим в большинстве случаев. Пиарщиков из Ubuntu за серьёзных людей никто не считает (разве что нищие любители халявы). Вон, в рассылке KDE неприкрыто извеваются над из Rosetta. Клоуны, мля! :)
> отсыпь, а? ;) новость о xml-конфигах вообще, сам гном тут непричем
Ага. Итак, читаем:
> Разработчики Ubuntu сделали важное открытие: оказывается, существенного ускорения загрузки и последующей работы приложений GNOME можно достичь особым образом отформатировав конфигурационные XML-файлы
> с каких пор опеноффис стал гномовским приложением? O_o
Интересно, а почему этот вопрос задан МНЕ, а не АВТОРУ НОВОСТИ, и ТОЛЬКО СЕЙЧАС, а не сразу после прочтения самой новости? Или новости мы не читаем вообще, вместо этого сразу же переходя к священной войне с ненавистными кадеешниками? :)
Каноник - замечательная компания. Но иногда, местами, кажется, что кое-то из них просто активно и нагло осваивает денежки Шаттлворта... При том, что конфиги читаются с диска (обычно) при запуске приложения (даже если они нужны потом - они, скорее всего, уже в кеше), при том, какой реальный бенефит для скорости дает выкидывание пробелов - я оооочень хочу посмотреть на их статистику увеличения производительности. И ооочень удивлюсь, если там будет что-то существенное.
Рекомендую начать с чтения текста самой новости. И в дальнейшем попробовать придерживаться правила: сначала прочитать то, на что отвечаешь, а потом уже отвечать. А то создаётся ощущение, что Гик остервенело сражается с выдуманными им же ветряными мельницами, якобы посягающими на его gconf :) Чудовищное зрелище, если честно.
>А то создаётся ощущение, что Гик остервенело сражается с выдуманными им же ветряными мельницами, якобы посягающими на его gconf :) Чудовищное зрелище, если честно.
мельницы были самые что ни на есть настоящие. А тебя я по инерции переехал. Извини :)
> А давайте я предскажу их следующий шаг? А пожалуйста: создание config-cache. Выделят каталог и будут срать туда промежуточными (видимо, бинарными) продуктами парсинга уже прочитанных xml-конфигов, чтоб повторное их чтение шло быстрее.
То, что макос для ускорения загрузки устраивает помойку-кэш из секторов тех файлов, котторые участвуют в загрузке (если верить виденному мной описанию их потрохов) - делает файловую систему бессмысленной?
> Интересно, а почему этот вопрос задан МНЕ, а не АВТОРУ НОВОСТИ, и ТОЛЬКО СЕЙЧАС, а не сразу после прочтения самой новости? Или новости мы не читаем вообще, вместо этого сразу же переходя к священной войне с ненавистными кадеешниками? :)
>> Ага. Итак, читаем:
>с каких пор опеноффис стал гномовским приложением? O_o
та же мазила и тандербёрд при старте подымают /opt/gnome/lib/GConf/2/gconfd-2 .
OO тоже это подымает.
rpm -qf /opt/gnome/lib/GConf/2/gconfd-2
gconf2-2.4.0.1-148.1
rpm -qi gconf2-2.4.0.1-148.1
Name : gconf2 Relocations: (not relocatable)
...
Summary : The GNOME 2.x Desktop Configuration Database System
Description :
This is the development version of GConf, the GNOME configuration
database. It is used by the GNOME 2.x Desktop platform.
Authors:
--------
Havoc Pennington <hp@redhat.com>
Distribution: SuSE Linux 9.1 (i586)
> вот и проверим кто прибежит флеймить первым, geek или обиженные кдеешнеги с воплями про hig и gconf :)
Ша, уже никто никуда не бежит. Вчерашняя новость про KDE4. Uniconf, задача переписать hig... Выкидывание лишних приложений и слишком сложный график. А... Ещё меню пуск, в стиле XP. ;-) Называется - найдите 10 отличий.
> То, что макос для ускорения загрузки устраивает помойку-кэш из секторов тех файлов, котторые участвуют в загрузке (если верить виденному мной описанию их потрохов) - делает файловую систему бессмысленной?
Нет, это только ставит вопрос о том, кто с кого содрал prefetching - они с WinXP или WinXP с них.
А я имел в виду другое. Если вся проблема - в священной корове по имени xml, то, может, заняться её усовершенствованием, а не лечить следствие? Например, поправить парсер, раз уж он так боится пробелов.
выкидывание пробелов - полная херня. у меня на машине скорость парсирования well-formed xml 50 метров в секунду SAX'ом. о каких пробелах может идти речь при таких скоростях?.. :)
> Для начала - никто не доказал, что проблема не высосана из пальца;)
А ты на user rating посмотри и задумайся. Похоже, проблема "Optimize different GNOME applications to make it more faster and responsive" находит понимаение в массах :)
Хотя один умный человек нашёлся:
Is this still the same "xml optimization" that you posted to the ubuntu devel list? The same stuff that several devs told you about, that there is no real gain in performance? The exact same stuff you didn't correctly tested for a performance gain? And still no figures to prove that there is even a simple speedup?
А над чем думать? Над тем стройным ручейком любителей твикалок, который понемногу начинает просачиваться из винюкового десктопа в униховый (и не надо говорить, что только гномовский;)
Гы, забавная провокационная тема, после незабвенного флейма по XML. :)
> XML конфиг считывается и парсится 1 раз, при старте приложения,
Про скорость парсинга тут уже говорили. Не думаю, что проблема здесь. Разве что, действительно парсить каждый раз.
> потом в памяти держится DOM структура, где понятно никаких пробелов лишних нет
Это тебе кто такое сказал? То есть, по твоему, после парсинга документ в исходном виде восстановить невозможно? :)
В общем.
Все whitespace сохраняются в DOM, как самые обычные text nodes. Таким образом, убрав все лишнее, можно сократить объем памяти необходимый для представления модели документа (DOM), за счет уменьшения количества узлов информация о которых хранится в дереве.
Если DOM используется как основнаяя модель представления данных, то есть, они не перегоняют ее ни во что свое, а действительно используют по принципу реестра и доступаются к ключам через XPath выражения, то тогда эти лишние узлы могут быть причиной тормозов (XPath процессору приходится обрабатывать больше узлов при навигации по дереву).
Я не знаю, какие у них мотивы для использования именно таких решений (если они используются, это всего лишь предположение), но XML сам по себе тут точно ни при чем. Кривых решений и в других местах хватает. :)
>потом в памяти держится DOM структура, где понятно никаких пробелов лишних нет.
Так вот куда память уходит! :)
Если я не ошибаюсь, instant update после каждого движения пишет DOM обратно на диск. Соответственно со всеми пробелами. Отсюда и тормоза, если учесть количество XML файлов и их общий размер.
>Защитники xml, вы уж определитесь как-нибудь: он у вас human readable или как? Я давно говорил, что пихать xml повсюду - глупо. Нет, не верили :)
>А давайте я предскажу их следующий шаг? А пожалуйста: создание config-cache. Выделят каталог и будут срать туда промежуточными (видимо, бинарными) продуктами парсинга уже прочитанных xml-конфигов, чтоб повторное их чтение шло быстрее.
Нужно быть оптимистичнее: мода на XML пройдёт и Де Иказа объявит крестовый поход на искоренение XML в gnome - все при деле :)
With commit 546830, KDE says good-bye to one of its longest friends: DCOP. The technology has served us well for 6 years, to the point that has become one of our most proeminent features. Many KDE applications are given an edge over their competitors by supporting advanced functionality through DCOP: you can tell a Konqueror page to evaluate a JavaScript code snippet (think document.write...), tell a Kate window to raise itself, Kontact to check email or Kopete to send an automated message, etc.
We now say hello to DCOP's younger brother: D-BUS. I merged this morning all the changes I had in a separate branch back into trunk. This completes one phase of the work and starts a new one!
То, что это (теоретицки) даст возможность использовать сервисы друг друга. И даже (вот был бы прикол) заставить gnome-session вместо gnome-settings-daemon запустить ... ну что там есть или будет на этом месте в КДЕ.