Front page | perl.perl5.porters |
Postings from January 2018
Re: regrepeat()
Thread Previous
|
Thread Next
From:
Dave Mitchell
Date:
January 2, 2018 12:37
Subject:
Re: regrepeat()
Message ID:
20180102123729.GE3106@iabyn.com
On Mon, Jan 01, 2018 at 07:08:10PM +0100, demerphq wrote:
> 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.
+1
--
Counsellor Troi states something other than the blindingly obvious.
-- Things That Never Happen in "Star Trek" #16
Thread Previous
|
Thread Next