Re: [PATCH v2 2/2] perf: add test showing exponential growth in path globbing
- From
Jonathan Nieder <jrnieder@gmail.com>
- Date
- May 10, 2017, 23:33 UTC
- Message-ID
- <20170510233311.GE28740@aiede.svl.corp.google.com>
- In-Reply-To
- <20170510225316.31680-3-avarab@gmail.com>
Hi,
Ævar Arnfjörð Bjarmason wrote:
> Add a test showing that ls-files times grow exponentially in the face > of some pathological globs, whereas refglobs via for-each-ref don't in > practice suffer from the same issue.
Cool.
[...]
Show 9 quoted lines
> --- /dev/null > +++ b/t/perf/p0100-globbing.sh > @@ -0,0 +1,48 @@ > +#!/bin/sh > + > +test_description="Tests pathalogical globbing performance > + > +Shows how Git's globbing performance performs when given the sort of > +pathalogical patterns described in at https://research.swtch.com/glob
s/pathalogical/pathological/
Show 23 quoted lines
> +" > + > +. ./perf-lib.sh > + > +test_globs_big='10 25 50 75 100' > +test_globs_small='1 2 3 4 5 6' > + > +test_perf_fresh_repo > + > +test_expect_success 'setup' ' > + for i in $(test_seq 1 100) > + do > + printf "a" >>refname && > + for j in $(test_seq 1 $i) > + do > + printf "a*" >>refglob.$i > + done && > + echo b >>refglob.$i > + done && > + test_commit $(cat refname) && > + for i in $(test_seq 1 100) > + do > + echo git tag $(cat refname)-$i
Leftover echo from debugging?
Show 17 quoted lines
> + done && > + test_commit hello > +' > + > +for i in $test_globs_big > +do > + test_perf "refglob((a*)^nb) against tag a^100; n = $i" ' > + git for-each-ref "refs/tags/$(cat refglob.'$i')b" > + ' > +done > + > +for i in $test_globs_small > +do > + test_perf "fileglob((a*)^nb) against file (a^100).t; n = $i" ' > + git ls-files "$(cat refglob.'$i')b" > + ' > +done
The rest looks sensible.
Thanks, Jonathan