Front page | perl.perl5.porters |
Postings from January 2018
Re: regrepeat()
Thread Previous
|
Thread Next
From:
demerphq
Date:
January 1, 2018 18:08
Subject:
Re: regrepeat()
Message ID:
CANgJU+WRCw7Q3O5kypoguNq4iUjgf8=O1eQv_i1s=a2F1td_cw@mail.gmail.com
On 31 December 2017 at 22:36, Karl Williamson <public@khwilliamson.com> wrote:
> This function is called during regular expression pattern matching for
> things like
>
> (foo)+
>
> to match as many 'foo's as there are. There is special code to handle the
> case where foo is a single byte, such as in
>
> a+
>
> It turns out that these cases can be sped up dramatically if what we are
> matching is a long string of 'a's in a row. We simply load a word with 4 or
> 8 a's and look at the string a word-at-a-time, which uses 1/4 or 1/8 the
> number of instructions. By using a mask, this can be extended to work for
>
> [aA]+
>
> as well. The code in each case is just over 20 lines of C.
>
> My question is, does this happen often enough in real life to justify the
> extra code?
>
> Leon pointed out that in DNA, there may be longish strings of 'A's.
I think this is highly likely to be worth it.
Yves
--
perl -Mre=debug -e "/just|another|perl|hacker/"
Thread Previous
|
Thread Next