[Aptitude-devel] Bug#270909: aptitude: speed

Manuel A. Fernandez Montecelo manuel.montezelo at gmail.com
Thu Mar 10 16:24:17 UTC 2016


Control: tags -1 + wontfix


2004-09-09 18:27 Dan Jacobson:
>Package: aptitude
>Version: 0.2.15.2-1
>Severity: wishlist
>
>If you get spare time, one day soup-up aptitude so it is as fast as
>the competition:
>$ time apt-cache show lsb>&-
>real	0m0.012s
>user	0m0.007s
>sys	0m0.005s
>$ time aptitude show lsb>&-
>real	0m1.265s
>user	0m1.202s
>sys	0m0.062s

I've been spending some time optimizing several things as part of 0.7.7.

aptitude is much more complex than apt-get in the sense than it links to
many more libraries, has curses interface (same binary), etc; not even
talking about apt-cache that does even less.

Additionally, there are many features from aptitude that are used in
"show", like: showing debtags, user-tags, and this needs to read the
debtags DB and other things, which makes things slower.  "show -v" shows
several version of the package, so it has to scan further.

There are aptitude-specific features on top of that, e.g.:

- checking if the package is "Automatically installed" (feature which
  apt has now in another database, that apt-cache doesn't seem to read
  so "apt-cache show" doesn't include)

- "Forbidden", etc.

- or the fact that "aptitude show" works with patterns

So comparing the two without having into account the extra features
doesn't really make sense, we are not going to remove the extra features
to improve the times anyway.


Lastly, the comparison is showing a simple case where the package does
not exist or is virtual.  The times are very different and the gap much
smaller for cases with the (newer) "apt" interface when matching
packages with variable names (even if aptitude continues to do more
things in this case):

  $ time apt show aptitude-commo. >&-

  WARNING: apt does not have a stable CLI interface. Use with caution in scripts.


  real    0m0.417s
  user    0m0.412s
  sys     0m0.000s

  $ time aptitude show ~n^aptitude-common$ >&-

  real    0m0.670s
  user    0m0.640s
  sys     0m0.024s


... so in summary, the comparison was apples with oranges, when it's
apples and apples the difference is not very high.


And I don't think that it's worth spending time optimising for cases
which take less than a second anyway, there are many other priorities in
aptitude right now (and have been for a long time), so marking as
+wontfix.


Cheers.
-- 
Manuel A. Fernandez Montecelo <manuel.montezelo at gmail.com>



More information about the Aptitude-devel mailing list