[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

[PATCH 0/3] speed up apt-get startup by ~19%



These are patches that should apply to the sid branch of
git://anonscm.debian.org/apt/apt.git – I hope that this is the right way to
do this?

These patches reduce the startup time of apt-get by ~19% on my system. I
measured by first doing "apt-get source sl", then running this command:

$ for i in {1..10}; do LD_LIBRARY_PATH=../../gitty/apt/build_orig/bin/ time ../../gitty/apt/build_orig/bin/apt-get source sl 2>&1; LD_LIBRARY_PATH=../../gitty/apt/build/bin/ time ../../gitty/apt/build/bin/apt-get source sl 2>&1; done | grep --line-buffered CPU
26.12user 0.91system 0:27.77elapsed 97%CPU (0avgtext+0avgdata 106724maxresident)k
20.78user 0.79system 0:21.62elapsed 99%CPU (0avgtext+0avgdata 106728maxresident)k
26.04user 0.71system 0:26.78elapsed 99%CPU (0avgtext+0avgdata 106728maxresident)k
20.74user 0.76system 0:21.53elapsed 99%CPU (0avgtext+0avgdata 106724maxresident)k
25.69user 0.60system 0:26.31elapsed 99%CPU (0avgtext+0avgdata 106728maxresident)k
20.74user 0.74system 0:21.51elapsed 99%CPU (0avgtext+0avgdata 106728maxresident)k
25.30user 0.83system 0:26.15elapsed 99%CPU (0avgtext+0avgdata 106728maxresident)k
20.68user 0.77system 0:21.49elapsed 99%CPU (0avgtext+0avgdata 106724maxresident)k
26.11user 0.59system 0:26.72elapsed 99%CPU (0avgtext+0avgdata 106728maxresident)k
20.67user 0.61system 0:21.30elapsed 99%CPU (0avgtext+0avgdata 106728maxresident)k
25.77user 0.63system 0:26.42elapsed 99%CPU (0avgtext+0avgdata 106728maxresident)k
20.78user 0.76system 0:21.56elapsed 99%CPU (0avgtext+0avgdata 106724maxresident)k
25.31user 0.80system 0:26.14elapsed 99%CPU (0avgtext+0avgdata 106724maxresident)k
20.73user 0.77system 0:21.52elapsed 99%CPU (0avgtext+0avgdata 106724maxresident)k
25.88user 0.80system 0:26.70elapsed 99%CPU (0avgtext+0avgdata 106724maxresident)k
20.67user 0.61system 0:21.30elapsed 99%CPU (0avgtext+0avgdata 106728maxresident)k
25.39user 0.78system 0:26.19elapsed 99%CPU (0avgtext+0avgdata 106724maxresident)k
20.55user 0.57system 0:21.14elapsed 99%CPU (0avgtext+0avgdata 106724maxresident)k
25.53user 0.76system 0:26.31elapsed 99%CPU (0avgtext+0avgdata 106724maxresident)k
20.75user 0.73system 0:21.49elapsed 99%CPU (0avgtext+0avgdata 106724maxresident)k

I dropped the first two lines because they look as if some caches warmed up or
so, then took the averages of the "elapsed" times and compared them. According
to that calculation, the time the command takes to run was reduced by
18.9% – but please measure for yourself!

What do you think? Rewriting the whole source like this would probably make it
much uglier, but IMO optimizing a few hot code paths this way should be fine.

Jann Horn (3):
  speed up debVersioningSystem::DoCmpVersion a bit
  speed up Hex2Num
  debListParser::DescriptionLanguage: huge speedup

 apt-pkg/contrib/strutl.cc    |   41 ++++++++++++++++++++++++-----------------
 apt-pkg/deb/deblistparser.cc |   12 ++++++++++--
 apt-pkg/deb/debversion.cc    |   37 +++++++++++++++++++++++++------------
 3 files changed, 59 insertions(+), 31 deletions(-)

-- 
1.7.10.4


Reply to: