]> git.saurik.com Git - apt.git/commit
drop stored StringItems in favor of in-memory mappings
authorDavid Kalnischkies <david@kalnischkies.de>
Fri, 20 Jun 2014 19:33:56 +0000 (21:33 +0200)
committerDavid Kalnischkies <david@kalnischkies.de>
Fri, 26 Sep 2014 22:09:35 +0000 (00:09 +0200)
commit78a5476f3177a2a74ae51a1878c26ca322a25003
treece7572f671deaf5e07e01fff64432daaf97e4bd5
parenta3a91fd7bab34983a008854728baf26034d4033e
drop stored StringItems in favor of in-memory mappings

Strings like Section names or architectures are needed vary often.
Instead of writing them each time we need them, we deploy sharing for
these special strings. Until now, this was done with a linked list of
strings in which we would search, which was stored in the cache.
It turns out we can do this just as well in memory as well with a bunch
of std::map's.

In memory means here that it isn't available anymore if we have a partly
invalid cache, but that isn't much of a problem in practice as the
status file is compared to the other files we parse very small and includes
mostly duplicates, so the space we would gain by storing is more or less
equal to the size of the stored linked list…
apt-pkg/deb/debindexfile.cc
apt-pkg/deb/deblistparser.cc
apt-pkg/deb/deblistparser.h
apt-pkg/edsp/edspindexfile.cc
apt-pkg/pkgcache.cc
apt-pkg/pkgcache.h
apt-pkg/pkgcachegen.cc
apt-pkg/pkgcachegen.h