git@vger.kernel.org mailing list mirror (one of many)
 help / color / mirror / code / Atom feed
From: Nicolas Pitre <nico@cam.org>
To: Jeff King <peff@peff.net>
Cc: Jon Smirl <jonsmirl@gmail.com>,
	Daniel Berlin <dberlin@dberlin.org>,
	Harvey Harrison <harvey.harrison@gmail.com>,
	David Miller <davem@davemloft.net>,
	ismail@pardus.org.tr, gcc@gcc.gnu.org, git@vger.kernel.org
Subject: Re: Git and GCC
Date: Thu, 06 Dec 2007 13:02:58 -0500 (EST)	[thread overview]
Message-ID: <alpine.LFD.0.99999.0712061246120.555@xanadu.home> (raw)
In-Reply-To: <20071206173946.GA10845@sigill.intra.peff.net>

On Thu, 6 Dec 2007, Jeff King wrote:

> On Thu, Dec 06, 2007 at 09:18:39AM -0500, Nicolas Pitre wrote:
> 
> > > The downside is that the threading partitions the object space, so the
> > > resulting size is not necessarily as small (but I don't know that
> > > anybody has done testing on large repos to find out how large the
> > > difference is).
> > 
> > Quick guesstimate is in the 1% ballpark.
> 
> Fortunately, we now have numbers. Harvey Harrison reported repacking the
> gcc repo and getting these results:
> 
> > /usr/bin/time git repack -a -d -f --window=250 --depth=250
> >
> > 23266.37user 581.04system 7:41:25elapsed 86%CPU (0avgtext+0avgdata 0maxresident)k
> > 0inputs+0outputs (419835major+123275804minor)pagefaults 0swaps
> >
> > -r--r--r-- 1 hharrison hharrison  29091872 2007-12-06 07:26 pack-1d46ca030c3d6d6b95ad316deb922be06b167a3d.idx
> > -r--r--r-- 1 hharrison hharrison 324094684 2007-12-06 07:26 pack-1d46ca030c3d6d6b95ad316deb922be06b167a3d.pack
> 
> I tried the threaded repack with pack.threads = 3 on a dual-processor
> machine, and got:
> 
>   time git repack -a -d -f --window=250 --depth=250
> 
>   real    309m59.849s
>   user    377m43.948s
>   sys     8m23.319s
> 
>   -r--r--r-- 1 peff peff  28570088 2007-12-06 10:11 pack-1fa336f33126d762988ed6fc3f44ecbe0209da3c.idx
>   -r--r--r-- 1 peff peff 339922573 2007-12-06 10:11 pack-1fa336f33126d762988ed6fc3f44ecbe0209da3c.pack
> 
> So it is about 5% bigger.

Right.  I should probably revisit that idea of finding deltas across 
partition boundaries to mitigate that loss.  And those partitions could 
be made coarser as well to reduce the number of such partition gaps 
(just increase the value of chunk_size on line 1648 in 
builtin-pack-objects.c).

> What is really disappointing is that we saved
> only about 20% of the time. I didn't sit around watching the stages, but
> my guess is that we spent a long time in the single threaded "writing
> objects" stage with a thrashing delta cache.

Maybe you should run the non threaded repack on the same machine to have 
a good comparison.  And if you have only 2 CPUs, you will have better 
performances with pack.threads = 2, otherwise there'll be wasteful task 
switching going on.

And of course, if the delta cache is being trashed, that might be due to 
the way the existing pack was previously packed.  Hence the current pack 
might impact object _access_ when repacking them.  So for a really 
really fair performance comparison, you'd have to preserve the original 
pack and swap it back before each repack attempt.


Nicolas

  reply	other threads:[~2007-12-06 18:03 UTC|newest]

Thread overview: 95+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
     [not found] <4aca3dc20712051108s216d3331t8061ef45b9aa324a@mail.gmail.com>
2007-12-06  2:28 ` Git and GCC David Miller
2007-12-06  2:41   ` Daniel Berlin
2007-12-06  2:52     ` David Miller
2007-12-06  3:47       ` Daniel Berlin
2007-12-06  4:20         ` David Miller
2007-12-06  4:28           ` Harvey Harrison
2007-12-06  4:32           ` Daniel Berlin
2007-12-06  4:48             ` David Miller
2007-12-06  5:11               ` Daniel Berlin
2007-12-06  5:15                 ` Harvey Harrison
2007-12-06  5:17                   ` Daniel Berlin
2007-12-06  6:47                     ` Jon Smirl
2007-12-06  7:15                       ` Jeff King
2007-12-06 14:18                         ` Nicolas Pitre
2007-12-06 17:39                           ` Jeff King
2007-12-06 18:02                             ` Nicolas Pitre [this message]
2007-12-07  6:50                               ` Jeff King
2007-12-07  7:27                                 ` Jeff King
2007-12-06 18:35                             ` Linus Torvalds
2007-12-06 18:55                               ` Jon Smirl
2007-12-06 19:08                                 ` Nicolas Pitre
2007-12-06 21:39                                   ` Jon Smirl
2007-12-06 22:08                                     ` Nicolas Pitre
2007-12-06 22:11                                       ` Jon Smirl
2007-12-06 22:22                                       ` Jon Smirl
2007-12-06 22:30                                         ` Nicolas Pitre
2007-12-06 22:44                                           ` Jon Smirl
2007-12-07  7:31                               ` Jeff King
2007-12-08  0:47                               ` Harvey Harrison
2007-12-10  9:54                                 ` Gabriel Paubert
2007-12-10 15:35                                   ` Nicolas Pitre
2007-12-07  3:31                             ` David Miller
2007-12-07  6:38                               ` Jeff King
2007-12-07  7:10                                 ` Jon Smirl
2007-12-07 12:53                                   ` David Miller
2007-12-07 17:23                                     ` Linus Torvalds
2007-12-07 20:26                                       ` Giovanni Bajo
2007-12-07 22:14                                         ` Jakub Narebski
2007-12-07 23:04                                           ` Luke Lu
2007-12-07 23:14                                           ` Giovanni Bajo
2007-12-07 23:33                                             ` Daniel Berlin
2007-12-08 12:00                                               ` Johannes Schindelin
2007-12-08  1:55                                       ` David Miller
2007-12-10  9:57                                     ` David Miller
2007-12-06  6:09                 ` Linus Torvalds
2007-12-06  7:49                   ` Harvey Harrison
2007-12-06  8:11                     ` David Brown
2007-12-06 14:01                     ` Nicolas Pitre
2007-12-06 12:03                   ` [PATCH] gc --aggressive: make it really aggressive Johannes Schindelin
2007-12-06 13:42                     ` Theodore Tso
2007-12-06 14:15                       ` Nicolas Pitre
2007-12-06 14:22                     ` Pierre Habouzit
2007-12-06 15:55                       ` Johannes Schindelin
2007-12-06 17:05                         ` David Kastrup
2007-12-06 15:30                     ` Harvey Harrison
2007-12-06 15:56                       ` Johannes Schindelin
2007-12-06 16:19                       ` Linus Torvalds
2009-03-18 16:01                     ` Johannes Schindelin
2009-03-18 16:27                       ` Teemu Likonen
2009-03-18 18:02                       ` Nicolas Pitre
2007-12-06 18:04                   ` Git and GCC Daniel Berlin
2007-12-06 18:29                     ` Linus Torvalds
2007-12-07  2:42                     ` Harvey Harrison
2007-12-07  3:01                       ` Linus Torvalds
2007-12-07  4:06                         ` Jon Smirl
2007-12-07  4:21                           ` Nicolas Pitre
2007-12-07  5:21                           ` Linus Torvalds
2007-12-07  7:08                             ` Jon Smirl
2007-12-07 19:36                               ` Nicolas Pitre
2007-12-06 18:24                   ` NightStrike
2007-12-06 18:45                     ` Linus Torvalds
2007-12-07  5:36                       ` NightStrike
2007-12-06 19:12                   ` Jon Loeliger
2007-12-06 19:39                     ` Linus Torvalds
2007-12-07  0:29                       ` Jakub Narebski
2007-12-06 20:04                     ` Junio C Hamano
2007-12-06 21:02                       ` Junio C Hamano
2007-12-06 22:26                         ` David Kastrup
2007-12-06 22:38                           ` [OT] " Randy Dunlap
2007-12-06  4:25         ` Harvey Harrison
2007-12-06  4:54           ` Linus Torvalds
2007-12-06  5:04             ` Harvey Harrison
2007-12-06 11:57       ` Johannes Schindelin
2007-12-06 12:04         ` Ismail Dönmez
     [not found] ` <2007-12-05-21-23-14+trackit+sam@rfc1149.net>
     [not found]   ` <1196891451.10408.54.camel@brick>
     [not found]     ` <jeeje0ogvk.fsf@sykes.suse.de>
     [not found]       ` <1196897840.10408.57.camel@brick>
     [not found]         ` <38a0d8450712130640p1b5d74d6nfa124ad0b0110d64@mail.gmail.com>
     [not found]           ` <1197572755.898.15.camel@brick>
2007-12-17 22:15             ` "Argument list too long" in git remote update (Was: Git and GCC) Geert Bosch
2007-12-17 22:59               ` Johannes Schindelin
2007-12-17 23:01               ` Linus Torvalds
2007-12-18  1:34                 ` Derek Fawcus
2007-12-18  1:52                   ` Shawn O. Pearce
2007-12-08  2:21 Git and GCC J.C. Pizarro
2007-12-08 12:24 ` Johannes Schindelin
2007-12-08 19:53   ` Joe Buck
2007-12-08 20:28     ` Marco Costalba
2007-12-09  1:51       ` Daniel Berlin
2007-12-15  0:18   ` Nix

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

  List information: http://vger.kernel.org/majordomo-info.html

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=alpine.LFD.0.99999.0712061246120.555@xanadu.home \
    --to=nico@cam.org \
    --cc=davem@davemloft.net \
    --cc=dberlin@dberlin.org \
    --cc=gcc@gcc.gnu.org \
    --cc=git@vger.kernel.org \
    --cc=harvey.harrison@gmail.com \
    --cc=ismail@pardus.org.tr \
    --cc=jonsmirl@gmail.com \
    --cc=peff@peff.net \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
Code repositories for project(s) associated with this public inbox

	https://80x24.org/mirrors/git.git

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).