diff options
author | David James <davidjames@chromium.org> | 2011-05-09 21:11:47 -0700 |
---|---|---|
committer | Zac Medico <zmedico@gentoo.org> | 2011-05-09 21:47:42 -0700 |
commit | 928bc527a8c3eab3784df54226df2f2d83c6c85c (patch) | |
tree | 78372e2d8c9c01fbe4050b87c1e35bf8c3e995b3 /pym/portage/dbapi/_MergeProcess.py | |
parent | 57b3d395aa582e798f008240ebd635fd0f269bed (diff) | |
download | portage-928bc527a8c3eab3784df54226df2f2d83c6c85c.tar.gz portage-928bc527a8c3eab3784df54226df2f2d83c6c85c.tar.bz2 portage-928bc527a8c3eab3784df54226df2f2d83c6c85c.zip |
Cache counter values, avoiding I/O when it doesn't change.
This improves merge times by up to 25%, since looping over the vardb for
each package install is slow.
TEST=Emerge a bunch of packages, notice 25% speed improvement.
BUG=chromium-os:15112
Change-Id: I51dd617219cd1820ceeb702291bd790990995be4
Diffstat (limited to 'pym/portage/dbapi/_MergeProcess.py')
-rw-r--r-- | pym/portage/dbapi/_MergeProcess.py | 3 |
1 files changed, 2 insertions, 1 deletions
diff --git a/pym/portage/dbapi/_MergeProcess.py b/pym/portage/dbapi/_MergeProcess.py index 12a0baf55..05f45d51a 100644 --- a/pym/portage/dbapi/_MergeProcess.py +++ b/pym/portage/dbapi/_MergeProcess.py @@ -143,6 +143,7 @@ class MergeProcess(SpawnProcess): fd_pipes[elog_writer_fd] = elog_writer_fd self._elog_reg_id = self.scheduler.register(elog_reader_fd, self._registered_events, self._elog_output_handler) + counter = self.vartree.dbapi.counter_tick() pid = os.fork() if pid != 0: @@ -196,7 +197,7 @@ class MergeProcess(SpawnProcess): try: rval = mylink.merge(self.pkgloc, self.infloc, myebuild=self.myebuild, mydbapi=self.mydbapi, - prev_mtimes=self.prev_mtimes) + prev_mtimes=self.prev_mtimes, counter=counter) except SystemExit: raise except: |