Re: [PATCH v2 07/10] generate-cmdlist.sh: stop sorting category lines

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Fri, Oct 22, 2021 at 09:36:11PM +0200, Ævar Arnfjörð Bjarmason wrote:

> 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.

> 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



[Index of Archives]     [Linux Kernel Development]     [Gcc Help]     [IETF Annouce]     [DCCP]     [Netdev]     [Networking]     [Security]     [V4L]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Linux SCSI]     [Fedora Users]

  Powered by Linux