Message ID | pull.25.v2.git.gitgitgadget@gmail.com (mailing list archive) |
---|---|
Headers | show |
Series | Use generation numbers for --topo-order | expand |
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. > 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).
On 9/18/2018 2:05 AM, Ævar Arnfjörð Bjarmason wrote: > 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 ' > >> 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