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
