develooper Front page | perl.perl5.porters | Postings from December 2017


Thread Next
Karl Williamson
December 31, 2017 21:36
Message ID:
This function is called during regular expression pattern matching for 
things like


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


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


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.

Thread Next Perl Programming lists via nntp and http.
Comments to Ask Bjørn Hansen at | Group listing | About