[devel] gdm-2.13.0.10-alt2

Dmitry V. Levin ldv на altlinux.org
Пн Мар 20 02:23:00 MSK 2006


On Mon, Mar 20, 2006 at 12:08:35AM +0300, Sergey N. Yatskevich wrote:
> Прикольно, а для меня вот необходимость такого патча НЕ очевидна.

Сергей, похоже что вы первый, кто усомнился во вредности
unused direct dependencies.

Лишние библиотеки, несомненно, замедляют запуск и увеличивают потребность
в памяти.  Ненужные явные зависимости в ELFах не всегда приводят к загрузке
лишних библиотек при запуске, хотя это зачастую и происходит.
Если в случае с gdm этого не происходит, то я, конечно, очень рад.

И, наконец, ненужные явные зависимости в ELFах очень часто приводят к
избыточным зависимостям между пакетами, и этого, конечно, нужно избегать.
Если нужно, я могу рассказать подробнее, почему.

> Я ещё раз повторяю, что помимо абстрактной "красоты" я никакой реальной
> пользы для работы данной конкретной программы не вижу (ни скорость
> работы gdm не увеличилась ни количество занимаемой им памяти не
> уменьшилось). А вот у меня работы прибавилось (при том, что я пока
> никак не могу заставить totem 1.4 нормально работать с libxine).
> Так что же улучшится, с точки зрения _пользователя_ gdm, от приложения
> патча "исправляющего" сборку?
> 
> P.S. а вот интересно, кто-нибудь собирал статистику о реальном выигрыше
>      от применения --as-needed. Ну там программы такие-то грузятся и
>      работают настолько-то быстрее и кушают на столько-то меньше
>      памяти. Я так понимаю, что именно для этого всё и затевалось.
>      или я неправильно понял цель всей этой эпопеи.

Конечно, польза в каждом случае своя, усреднять её толку мало.
Для запуска gdm-binary из gdm-2.14.0-alt1 я её измерил стандартным методом:

gdm-binary, слинкованный без --as-needed:
$ ldd -u /usr/sbin/gdm-binary |fgrep -c /lib 
19
$ time sh -c 'for i in `seq 3000`; do /usr/sbin/gdm-binary --version >/dev/null; done'
39.84user 17.85system 0:57.83elapsed 99%CPU (0avgtext+0avgdata 0maxresident)k
0inputs+0outputs (2532360major+539053minor)pagefaults 0swaps

gdm-binary, слинкованный c --as-needed:
$ ldd -u /usr/sbin/gdm-binary |fgrep -c /lib
10
$ time sh -c 'for i in `seq 3000`; do /usr/sbin/gdm-binary --version >/dev/null; done'
38.02user 19.16system 0:55.03elapsed 103%CPU (0avgtext+0avgdata 0maxresident)k
0inputs+0outputs (2535360major+539073minor)pagefaults 0swaps

Погрешность измерения выглядит так:
$ time sh -c 'for i in `seq 3000`; do :; done'
0.01user 0.01system 0:00.02elapsed 95%CPU (0avgtext+0avgdata 0maxresident)k
0inputs+0outputs (361major+148minor)pagefaults 0swaps

Таким образом, выигрыш в elapsed CPU составляет:
(57.83-55.03)*100%/57.83 т.е примерно 4.8%

Я надеюсь, что моя точка зрения теперь выглядит достаточно аргументированной.


-- 
ldv
----------- следущая часть -----------
Было удалено вложение не в текстовом формате...
Имя     : отсутствует
Тип     : application/pgp-signature
Размер  : 191 байтов
Описание: отсутствует
Url     : http://lists.altlinux.org/pipermail/devel/attachments/20060320/748d0585/attachment.bin 


Подробная информация о списке рассылки Devel