[Bug 915569] Re: Latest version is much slower to write rdepends output than older ones
Launchpad Bug Tracker
915569 at bugs.launchpad.net
Tue Jan 17 23:20:16 UTC 2012
This bug was fixed in the package germinate - 2.5
---------------
germinate (2.5) unstable; urgency=low
* Stop fetching Suggests from Packages; we don't use it.
* Build a cache of seed entries when analysing reverse-dependencies, so
that we don't have to expensively call get_seed_entries once per package
per seed (LP: #915569).
* Convert to setuptools.
* Add the beginnings of a test suite.
* Make the main bodies of scripts into modules so that they can be tested
more easily.
* Remove private AtomicUTF8File class; just write all files as UTF-8.
* Port to Python 3:
- Use "raise Exception(value)" syntax rather than the old-style "raise
Exception, value".
- Use Python 3-style print functions.
- Use a list comprehension rather than filter (which behaves differently
in Python 3).
- Make GraphCycleError a subclass of Exception rather than of
StandardError.
- Simplify stringiness tests in TagFile.__init__ and Seed.__init__ using
basestring.
- Implement rich comparison methods instead of __cmp__ for Seed and
GerminatedSeed. (Seed needs all of them for interface-compatibility;
GerminatedSeed only needs __eq__ and __ne__.)
- Use Python 3 replacements for urllib, urllib2, and ConfigParser if
available.
- When decompressing tag files from the archive, explicitly treat
everything as binary data.
- In Python 3, decode seed data read from URLs as UTF-8.
- Pass universal_newlines=True to subprocess.Popen to get Unicode
output.
- Make sure to close stdout of subprocess.Popen objects.
- Use 2to3 to handle the few remaining 2/3 differences at build time.
- Add a python3-germinate package.
-- Colin Watson <cjwatson at ubuntu.com> Tue, 17 Jan 2012 00:51:28 +0000
** Changed in: germinate (Ubuntu)
Status: Fix Committed => Fix Released
--
You received this bug notification because you are a member of Ubuntu
Foundations Bugs, which is subscribed to germinate in Ubuntu.
https://bugs.launchpad.net/bugs/915569
Title:
Latest version is much slower to write rdepends output than older ones
Status in “germinate” package in Ubuntu:
Fix Released
Bug description:
We're using germinate to get a list of dependencies needed to install
checkbox, meant to produce a tarball of .debs that can be installed on
a server that's offline.
While doing this we noticed the germinate process was taking a really
long time (at least an hour, sometimes up to three). What we did was
go back to rev376 of germinate, and that one is able to finish the
process in a few minutes.
So at least for the way we're using germinate (which could potentially
be wrong, but it *is* producing good results) there's a regression
with regards to execution time.
How to reproduce:
bzr branch lp:germinate germinate-head
bzr branch -r376 lp:germinate germinate-376
mkdir germ-temp-{1,2}
cd germ-temp-1
echo "Run with rev 376"
PYTHONPATH=../germinate-376 time ../germinate-376/germinate.py -s ubuntu.oneiric -m http://archive.ubuntu.com/ubuntu/ -d oneiric -a amd64 -c main,universe --seed-packages ubuntu-desktop
cd ..
cd germ-temp-2
echo "Run with HEAD"
PYTHONPATH=../germinate-head time ../germinate-head/bin/germinate -s ubuntu.oneiric -m http://archive.ubuntu.com/ubuntu/ -d oneiric -a amd64 -c main,universe ubuntu-desktop
cd ..
Expected results:
both runs run in a reasonable amount of time.
Actual results:
When run on a 2.4-GHz i5 system with 4GB RAM and a 10-Mbit connection, 11.10 amd64, latest is about 34 times slower than r376:
first run (r376):
i5384inputs+1123488outputs (0major+77624minor)pagefaults 0swaps
real 2m16.029s
user 1m51.047s
sys 0m2.656s
Second run (latest revision):
4055.88user 6.01system 1:08:02elapsed 99%CPU (0avgtext+0avgdata 845152maxresident)k
784inputs+1150432outputs (0major+72860minor)pagefaults 0swaps
real 68m2.499s
user 67m35.889s
sys 0m6.016s
To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/germinate/+bug/915569/+subscriptions
More information about the foundations-bugs
mailing list