[PATCH 2 of 4] obsstore: disable garbage collection during initialisation (issue4456)
Antoine Pitrou
solipsis at pitrou.net
Wed Dec 3 18:44:27 CST 2014
On Wed, 03 Dec 2014 17:31:25 -0600
Matt Mackall <mpm at selenic.com> wrote:
> On Sun, 2014-11-30 at 05:17 -0800, Pierre-Yves David wrote:
> >
> > On 11/30/2014 05:06 AM, Antoine Pitrou wrote:
> > > On Sat, 29 Nov 2014 17:57:42 -0800
> > > Pierre-Yves David <pierre-yves.david at ens-lyon.org> wrote:
> > >> # HG changeset patch
> > >> # User Pierre-Yves David <pierre-yves.david at fb.com>
> > >> # Date 1417049911 28800
> > >> # Wed Nov 26 16:58:31 2014 -0800
> > >> # Node ID d0f3dac4ea2b4aff51946c7db0834aa4e5c3e82a
> > >> # Parent 04eb7e49d2b6f90f71aa85de9ad0b4d70670d688
> > >> obsstore: disable garbage collection during initialisation (issue4456)
> > >>
> > >> Python garbage collection is triggered by contained creation. So code that
> > >> creates a lot of tuple tends to trigger GC a lot. We disable the gc during
> > >> obsolescence marker parsing and associated initialization. The provide and
> > >> interesting speedup (25%).
> > >>
> > >> On my 58758 markers repo:
> > >> before: 0.468247 seconds
> > >> after: 0.344362 seconds
> > >
> > > Which Python version is that?
> >
> > Python 2.7.8 (default, Oct 18 2014, 12:50:18)
> > [GCC 4.9.1]
>
> Python's GC behavior while building large containers is quite
> questionable (aka quadratic).
It shouldn't, see https://hg.python.org/cpython/rev/79276316b94b/
If you have a reproducer, please open an issue at bugs.python.org.
Regards
Antoine.
More information about the Mercurial-devel
mailing list