Stanislav Ievlev пишет:
> Как минимум одну вещь можно существенно ускорить в пользовательском плане.
> Причём даже для Compact3.0 .
>
> apt-shell/pipe стартует так долго не только по тому-что он считывает кеш,
> сколько потому что он ,пользуясь данными sourcelist'ами, переделывает их
> _заново_ . apt-cache обладает в отличие от apt-shell нужным интелектом и
> (как было подсказано в своё время voins) не перегенерит кеш, когда в этом
> нет необходимости.
>
> Если этот кеш создать в firsttime.d скажем при помощи "apt-cache gencaches", 
> а apt-shell отучить от перегенерации при старте, то при переходе между шагами 
> инсталлера (то есть когда поднимается apt-pipe) получим выигрыш 4с и более.
>
> В коде это дело обстоит примерно так.
> Сам pkgCache использует для работы некий MMap, этот MMap либо as-is уже 
> имеющийся файл - либо созданная заново (перегенерённая) область памяти.
>
> apt-shell использует не pkgCache, а pkgCacheFile в котором метод Open всегда 
> вызывает buildCaches. То бишь
> хачить надо будет в libapt-pkg непосредственно отучая pkgCache:open когда
> не надо вызывать pkgMakeStatusCache, а юзать напрямую MMap от существующего 
> файла. Как это делать правильно честное слово не знаю, может быть через 
> какие-то параметры конфига? Пусть спецы по apt подскажут.
>   
IMHO тут оптимально делать кэш в том случае, если его нет. Т.е. - 
добавить проверку на наличие кэша и генерить его.

Но: фишка в том, что в инсталяторе всё равно кэша нет. Соответственно мы 
эти 4 секунды всё равно потратим. Другой вопрос в том, что эту работу 
можно сделать в фоне.
>
> P.S. Кеш кажется перегенерится ещё разок при выполнении установки, но там
> уже сложнее понять нужно это или нет, в любом случае там пользователь и так 
> ждёт окончания более длительного 
> процесса установки.
>   
Я думаю что лучше пускай генерится.
> P.P.S. Есть там ещё одна мистика, pkgCache сохраняется, а pkgDepCache
> ,несмотря на кеширующее название, каждый раз перегенеряется заново ... вот
> если бы и его отхачить, то старт apt-pipe был бы вообще практически 
> мгновенным ;)
>   
Ага.

Rgds,
Rider

_______________________________________________
Devel-conf mailing list
[email protected]
https://lists.altlinux.org/mailman/listinfo/devel-conf

Ответить