Also, were the bottlenecks seen in pkg_delete and pkg_add, or does it appear to be distributed across the board?

The biggest time sink in pkg_add is writing each file to a temp
dir then copying it to its final location.  There are a couple
of strategies for avoiding this (by writing the files directly
to their final location), but it basically requires rewriting
pkg_add from scratch.  I prototyped this a long time ago and
found about a 3x speedup.  (Parts of that prototype eventually
became libarchive.)

I haven't looked closely at pkg_delete, but I doubt there's
much that can be done to speed it up; once you've examined the
dependency information to determine what can be deleted,
actually removing the files is a pretty straightforward
operation.

The two operations that people focus on performance issues have
been index rebuilding (which requires inspecting every port in
/usr/ports) and update (which requires inspecting every
installed port).  The modular Xorg is especially going to stress
updates, since it greatly increases the number of ports on the
average system.

One useful tool:  "truss" can include timing information that
can give a lot of insight into where a program is really
spending time.

Tim Kientzle

_______________________________________________
freebsd-hackers@freebsd.org mailing list
http://lists.freebsd.org/mailman/listinfo/freebsd-hackers
To unsubscribe, send any mail to "[EMAIL PROTECTED]"

Reply via email to