On 7/26/2018 3:40 PM, Junio C Hamano wrote:
Duy Nguyen <pclouds@xxxxxxxxx> 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%