git/t/perf/p0003-delta-base-cache.sh
Jeff King c7df68cbca t/perf: add basic perf tests for delta base cache
This just shows off the improvements done by the last few
patches, and gives us a baseline for noticing regressions in
the future. Here are the results with linux.git as the perf
"large repo":

Test                origin                HEAD
-------------------------------------------------------------------
0003.1: log --raw   43.41(40.36+2.69)     33.86(30.96+2.41) -22.0%
0003.2: log -S      313.61(309.74+3.78)   298.75(295.58+3.00) -4.7%

(for a large repo, the "log -S" improvements are greater if
you bump the delta base cache limit, but I think it makes
sense to test the "stock" behavior, since that is what most
people will see).

Signed-off-by: Jeff King <peff@peff.net>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
2016-08-23 15:26:16 -07:00

32 lines
911 B
Bash
Executable File

#!/bin/sh
test_description='Test operations that emphasize the delta base cache.
We look at both "log --raw", which should put only trees into the delta cache,
and "log -Sfoo --raw", which should look at both trees and blobs.
Any effects will be emphasized if the test repository is fully packed (loose
objects obviously do not use the delta base cache at all). It is also
emphasized if the pack has long delta chains (e.g., as produced by "gc
--aggressive"), though cache is still quite noticeable even with the default
depth of 50.
The setting of core.deltaBaseCacheLimit in the source repository is also
relevant (depending on the size of your test repo), so be sure it is consistent
between runs.
'
. ./perf-lib.sh
test_perf_large_repo
# puts mostly trees into the delta base cache
test_perf 'log --raw' '
git log --raw >/dev/null
'
test_perf 'log -S' '
git log --raw -Sfoo >/dev/null
'
test_done