On Tue, May 08, 2007 at 11:38:46AM -0400, Nicolas Pitre wrote:
On Tue, 8 May 2007, Theodore Ts'o wrote:
quoted
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