Re: [PATCH v2 07/10] generate-cmdlist.sh: stop sorting category lines
- From
Jeff King <peff@peff.net>
- Date
- Oct 25, 2021, 16:39 UTC
- Message-ID
- <YXbdxDcaZOVrPUBz@coredump.intra.peff.net>
- In-Reply-To
- <patch-v2-07.10-f2f37c2963b-20211022T193027Z-avarab@gmail.com>
On Fri, Oct 22, 2021 at 09:36:11PM +0200, Ævar Arnfjörð Bjarmason wrote:
Show 14 quoted lines
> In a preceding commit we changed the print_command_list() loop to use
> printf's auto-repeat feature. Let's now get rid of get_category_line()
> entirely by not sorting the categories.
>
> This will change the output of the generated code from e.g.:
>
> - { "git-apply", N_("Apply a patch to files and/or to the index"), 0 | CAT_complete | CAT_plumbingmanipulators },
>
> To:
>
> + { "git-apply", N_("Apply a patch to files and/or to the index"), 0 | CAT_plumbingmanipulators | CAT_complete },
>
> I.e. the categories are no longer sorted, but as they're OR'd together
> it won't matter for the end result.Thanks for picking this up. The commit message here is well explained.
Show 6 quoted lines
> This speeds up the generate-cmdlist.sh a bit. Comparing HEAD~ (old) > and "master" to this code: > > 'sh generate-cmdlist.sh command-list.txt' ran > 1.07 ± 0.33 times faster than 'sh generate-cmdlist.sh.old command-list.txt' > 1.15 ± 0.36 times faster than 'sh generate-cmdlist.sh.master command-list.txt'
Curious. I get much more dramatic results (as I'd expect, as we are cutting out 2 of 3 process spawns in the loop):
'sh generate-cmdlist.sh command-list.txt' ran
2.16 ± 0.17 times faster than 'sh generate-cmdlist.sh.old command-list.txt'
2.37 ± 0.28 times faster than 'sh generate-cmdlist.sh.master command-list.txt'Either way, I think it's a good idea (and it paves the way for the next patch, where we get the biggest speedup because we stop spawning any processes at all).
-Peff