Re: [PATCH v2 0/6] Use generation numbers for --topo-order
- From
Derrick Stolee <stolee@gmail.com>
- Date
- Sep 21, 2018, 15:47 UTC
- Message-ID
- <2d72ae31-774e-d0a4-8b6c-ea125377eac5@gmail.com>
- In-Reply-To
- <87worjjq6o.fsf@evledraar.gmail.com>
On 9/18/2018 2:05 AM, Ævar Arnfjörð Bjarmason wrote:
Show 24 quoted lines
> On Tue, Sep 18 2018, Derrick Stolee via GitGitGadget wrote:
>
> Thanks. Good to see the commit graph used for more stuff.
>
>> On the Linux repository, I got the following performance results when
>> comparing to the previous version with or without a commit-graph:
>>
>> Test: git rev-list --topo-order -100 HEAD
>> HEAD~1, no commit-graph: 6.80 s
>> HEAD~1, w/ commit-graph: 0.77 s
>> HEAD, w/ commit-graph: 0.02 s
>>
>> Test: git rev-list --topo-order -100 HEAD -- tools
>> HEAD~1, no commit-graph: 9.63 s
>> HEAD~1, w/ commit-graph: 6.06 s
>> HEAD, w/ commit-graph: 0.06 s
> It would be great if this were made into a t/perf/ test shipped with
> this series, that would be later quoted in a commit, as in
> e.g. 3b41fb0cb2 ("fsck: use oidset instead of oid_array for skipList",
> 2018-09-03).
>
> Although generalizing that "-- tools" part (i.e. finding a candidate
> dir) will require some heuristic, but would make it useful when running
> this against other erpos.t/perf/p4211-line-log.sh has the following test:
test_perf 'git log --oneline --raw --parents -1000' ' git log --oneline --raw --parents -1000 >/dev/null '
We could add the following to the end of that script to get similar values, since it already selects a file randomly at the top of the script:
test_perf 'git log --oneline --raw --parents -1000 -- <file>' ' git log --oneline --raw --parents -1000 -- $file >/dev/null '
Show 19 quoted lines
> >> If you want to read this series but are unfamiliar with the commit-graph and >> generation numbers, then I recommend reading >> Documentation/technical/commit-graph.txt or a blob post [1] I wrote on the >> subject. In particular, the three-part walk described in "revision.c: >> refactor basic topo-order logic" is present (but underexplained) as an >> animated PNG [2]. > We discussed some of this in private E-Mail, and this isn't really > feedback on *this* series in particular, just on the general > commit-graph work. > > Right now git-config(1) just matter-of-factly says how to enable it, and > points to git-commit-graph(1) for further info, which just shows how to > run the tool. But nothing's describing what stuff is sped up, and those > sorts of docs aren't being updated as new optimizations (e.g. this > --topo-order walk) are added. > > For that you need to scour a combination of your blogpost & commits in > git.git (with quoted perf numbers).
Thanks for reminding me. I have this on my list of TODOs.
-Stolee