public inbox for git@vger.kernel.org 
 help / color / mirror / Atom feed
From: Theodore Tso <tytso@mit•edu>
To: Nicolas Pitre <nico@cam•org>
Cc: Junio C Hamano <junkio@cox•net>, Git Mailing List <git@vger•kernel.org>
Subject: Re: [PATCH] Add pack.depth option to git-pack-objects and change default depth to 50
Date: Tue, 8 May 2007 12:30:44 -0400	[thread overview]
Message-ID: <20070508163044.GA15796@thunk.org> (raw)
In-Reply-To: <alpine.LFD.0.99.0705081136050.24220@xanadu.home>

On Tue, May 08, 2007 at 11:38:46AM -0400, Nicolas Pitre wrote:
> On Tue, 8 May 2007, Theodore Ts'o wrote:
> 
> > Signed-off-by: "Theodore Ts'o" <tytso@mit•edu>
> 
> I'd prefer if tests were performed on the performance impact before 
> changing the default depth.  If done separately from this patch then the 
> commit log could contain those results as well.

The following results are on a recent git repository, using time to
record the real, user, and sys times on the two commands: "git-gc
--no-reuse-delta --window=X --depth=Y" and "git log --pretty=oneline
-S'object' > /dev/null".  All of these tests were done with a hot
cache, so disk speed didn't enter into the calculations.

                git-gc                     git log -S'object'   pack size
w=10,d=10       27.1s/25.2s/0.3s           20.8s/20.4s/0.1s     15292k
w=10,d=30	23.8s/22.3s/0.2s           21.2s/20.9s/0.1s     12996k
w=10,d=50       24.8s/22.4s/0.4s           21.8s/21.2s/0.1s     12340k
w=100,d=100     24.1s/22.8s/0.3s           22.4s/21.8s/0.2s     11772k

w=30,d=10       45.0s/43.1s/0.4s           20.8s/20.5s/0.1s     14388k
w=30,d=30       35.8s/34.1s/0.3s           21.6s/21.1s/0.1s     11800k
w=30,d=50       34.6s/33.0s/0.3s           22.1s/21.4s/0.1s     11376k
w=30,d=100      34.0s/32.2s/0.3s           22.2s/21.6s/0.1s     11012k

w=50,d=10       56.1s/54.3s/0.4s           21.3s/20.5s/0.1s     14224k
w=50,d=30       47.2s/45.4s/0.4s           21.6s/21.0s/0.1s     11496k      
w=50,d=50       44.5s/43.0s/0.3s           21.7s/21.2s/0.1s     11108k
w=50,d=100      44.3s/42.7s/0.4s           22.4s/21.7s/0.1s     10824k

So a couple of things immediately become evident.  First of all, as
Junio predicted, changing --depth makes no difference to the git-gc or
git log times.  The latter is thanks to the delta chaching.  Secondly,
changing --depth does make a signficiant difference to the pack size.

Finally, --window does help somewhat in reducing the pack size, but it
_significantly_ increases the time to calculate the pack.

My conclusion given this quick benchmark is that it seems to me that
changing the defaults of --depth to 50, and keeping --window at 10, is
a reasonable thing to do.

Regards,

						- Ted

  reply	other threads:[~2007-05-08 16:30 UTC|newest]

Thread overview: 40+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2007-05-08  2:54 [PATCH] Add --no-reuse-delta, --window, and --depth options to git-gc Theodore Ts'o
2007-05-08  3:13 ` Nicolas Pitre
2007-05-08  3:21   ` Theodore Tso
2007-05-08  3:38     ` Dana How
2007-05-08  4:43     ` Junio C Hamano
2007-05-08 13:28       ` [PATCH] Add --no-reuse-delta, --window, and --depth options to Theodore Ts'o
2007-05-08 13:28         ` [PATCH] Add pack.depth option to git-pack-objects and change default depth to 50 Theodore Ts'o
2007-05-08 13:28           ` [PATCH] Add --no-reuse-delta option to git-gc Theodore Ts'o
2007-05-08 15:35             ` Nicolas Pitre
2007-05-09  5:05             ` Daniel Barkalow
2007-05-09  8:15               ` Junio C Hamano
2007-05-09  9:02                 ` Steven Grimm
2007-05-09 11:35                   ` Other compression?, was " Johannes Schindelin
2007-05-09 15:15                   ` Junio C Hamano
2007-05-09 19:10                   ` Shawn O. Pearce
2007-06-10  7:40                     ` Sam Vilain
2007-06-11  1:51                       ` Nicolas Pitre
2007-06-11  6:20                         ` Steven Grimm
2007-06-11  6:31                           ` Shawn O. Pearce
2007-06-11 10:20                         ` Johannes Schindelin
2007-06-11 14:01                           ` Nicolas Pitre
2007-06-11 21:40                             ` Johannes Schindelin
2007-05-09 19:48                 ` [PATCH] Add --aggressive option to 'git gc' Theodore Tso
2007-05-09 20:19                   ` Junio C Hamano
2007-05-09 22:22                     ` Theodore Tso
2007-05-10  7:38                   ` Junio C Hamano
2007-05-08 15:38           ` [PATCH] Add pack.depth option to git-pack-objects and change default depth to 50 Nicolas Pitre
2007-05-08 16:30             ` Theodore Tso [this message]
2007-05-08 16:49               ` Johannes Schindelin
2007-05-08 18:09                 ` Theodore Tso
2007-05-08 18:46                   ` Nicolas Pitre
2007-05-09 13:49                     ` Theodore Tso
2007-05-09 14:17                       ` Johannes Schindelin
2007-05-08 17:07               ` Dana How
2007-05-08 17:35               ` Nicolas Pitre
2007-05-09  5:03                 ` Junio C Hamano
2007-05-08 15:30         ` [PATCH] Add --no-reuse-delta, --window, and --depth options to Nicolas Pitre
2007-05-08 21:12           ` Junio C Hamano
2007-05-08 23:59             ` Nicolas Pitre
2007-05-08 13:46       ` [PATCH] Add --no-reuse-delta, --window, and --depth options to git-gc Nicolas Pitre

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

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

  git send-email \
    --in-reply-to=20070508163044.GA15796@thunk.org \
    --to=tytso@mit$(echo .)edu \
    --cc=git@vger$(echo .)kernel.org \
    --cc=junkio@cox$(echo .)net \
    --cc=nico@cam$(echo .)org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox