From: Ben Peart Date: Fri, 27 Jul 2018 15:50:56 GMT Subject: Re: [PATCH v1 0/3] [RFC] Speeding up checkout (and merge, rebase, etc) Message-ID: In-Reply-To: On 7/26/2018 3:40 PM, Junio C Hamano wrote: > Duy Nguyen 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%