[devel] robots VS sisyphus
Alexey Tourbin
at на altlinux.ru
Вт Дек 27 22:29:49 MSK 2011
On Sun, Dec 25, 2011 at 06:53:04PM +0400, Денис Смирнов wrote:
> On Sun, Dec 25, 2011 at 08:47:36AM +0400, Алексей Турбин wrote:
> AT> Apt масштабируется как O(n), где n - количество пакетов.
>
> На какой операции?
> И n -- количество пакетов, а не зависимостей?
Амортизированное время разрешения зависимостей при установке пакетов.
Например, это операция "apt-cache unmet" или более сложная операция
"apt-shell <<<unmet", которая включает в себя пересборку кеша зависимостей.
> AT> Кроме того, константа масштабирования очень хорошая: на сервере с 24G RAM
> AT> все операции апта выполняются менее чем за секунду. То есть нет такого,
> AT> что сожрали CPU user time и никакого ответа не дали - дескать подождите ещё.
>
> Увы, не у всех пока есть ноутбуки с характеристиками "сервера с 24G RAM",
> например. А apt используется отнюдь не только при сборке пакетов.
>
> А когда я при apt-cache вижу вот такое:
> 4.85s user 3.06s system 22% cpu 34.723 total
>
> мне становится сразу понятно что apt недостаточно быстрый с точки зрения
> пользователя.
Не надо сравнивать полнотекстовый поиск, который представляет частный/
разовый интерес, и разрешение зависимостей, которе должно масштабироваться
в цикле.
> apt-cache search должен выполняться за менее чем 1s на среднем железе.
> Среднее сейчас это что-то вроде 2G RAM, 2GHz core 2 duo.
Ты не понимешь, как работает apt. "Apt-cache search" практически
построчно сканирует те файлы, которые он скачал. Это никогда не будет
слишком быстро работать, by design. А обработка зависимостей
происходит на порядок быстрее за счет создания промежуточной структуры
данных - /var/cache/apt/pkgcache.bin.
Подробная информация о списке рассылки Devel