Re: [PATCH v1 0/3] [RFC] Speeding up checkout (and merge, rebase, etc)
- From
Ben Peart <peartben@gmail.com>
- Date
- Jul 27, 2018, 15:50 UTC
- Message-ID
- <ab7338a4-4a63-c722-35b1-a5b0784d66bf@gmail.com>
- In-Reply-To
- <xmqqd0v9pyzu.fsf@gitster-ct.c.googlers.com>
On 7/26/2018 3:40 PM, Junio C Hamano wrote:
Show 10 quoted lines
> Duy Nguyen <pclouds@gmail.com> writes: > >> I'm excited so I decided to try out anyway. This is what I've come up >> with. Switching trees on git.git shows it could skip plenty entries, >> so promising. It's ugly and it fails at t6020 though, there's still >> work ahead. But I think it'll stop here. > > We are extremely shallow compared to projects like the kernel and > stuff from java land, so that is quite an interesting find. >
I had a few minutes so applied this patch to the latest git for windows and ran the p0006-read-tree-checkout.sh perf test on the git repo as well as a synthetic large repo. The results look quite promising - up to a 28.8% savings!
I'm out of time this week but am _very_ interested in seeing if this can be completed successfully.
Ben
git repo results ================
Test this tree gfw --------------------------------------------------------------------------------------------------------- 0006.2: read-tree br_base br_ballast (1000001) 1.37(0.04+0.09) 1.34(0.03+0.09) -2.2% 0006.3: switch between br_base br_ballast (1000001) 50.21(0.07+0.09) 50.22(0.03+0.09) +0.0% 0006.4: switch between br_ballast br_ballast_plus_1 (1000001) 3.58(0.03+0.09) 4.61(0.03+0.10) +28.8% 0006.5: switch between aliases (1000001) 3.67(0.03+0.07) 4.56(0.01+0.07) +24.3%
large synthetic repo results ============================
Test this tree gfw --------------------------------------------------------------------------------------------------------- 0006.2: read-tree br_base br_ballast (1000001) 1.33(0.04+0.04) 1.33(0.04+0.06) +0.0% 0006.3: switch between br_base br_ballast (1000001) 48.96(0.03+0.12) 50.76(0.03+0.07) +3.7% 0006.4: switch between br_ballast br_ballast_plus_1 (1000001) 3.64(0.01+0.09) 4.59(0.06+0.07) +26.1% 0006.5: switch between aliases (1000001) 3.68(0.03+0.07) 4.66(0.04+0.06) +26.6%