portupgrade O(n^m)?

Coleman Kane zombyfork at gmail.com
Wed Feb 14 18:36:40 UTC 2007


On 2/14/07, John Nielsen <lists at jnielsen.net> wrote:
>
> On Wednesday 14 February 2007 12:41, David Gilbert wrote:
> > I have 734 ports installed on my laptop right now.  I'm pretty sure,
> > at times, I've had over 1000 ports on my laptop.
> >
> > On machine with moderate numbers of ports (most servers seem to have
> > 50 to 200 ports), portupgrade takes a moderate amount of time to start
> > work.  On machines like my laptop, portupgrade seems to take much more
> > time to run.  I assume it's solving the dependency graph before it
> > decides what to upgrade first, but is this truly a O(n^2) problem?  It
> > seems like the implemented algorithm is O(n^2).
>
> Just a "me too". I noticed a huge increase in time for portupgrade when I
> started using the modular Xorg ports tree and upgraded to X.org 7.2RC. The
> number of installed ports on my machine went from just over 300 to well
> over
> 600 as a result of the upgrade. Specifying small numbers of ports (without
> globbing) to portupgrade doesn't seem to take much more time,
> but "portupgrade -a" or anything similar takes forever now. If there is an
> optimization to be made there it would be good to do it before modular
> xorg
> hits the official tree.
>
> JN


I've also had this problem. I have found that if I perform a "portsdb -U &&
pkgdb -F" every time following a cvsup that portupgrade doesn't try to go
through the full ports indexing steps again.

It is still slow, and any improvement that can be made should be. It is
already a significant enough pain that most ports build in a shorter amount
of time than it takes portupgrade to update its database.

--
Coleman Kane


More information about the freebsd-hackers mailing list