[EMAIL PROTECTED] wrote: > Hi all, > I've got some performance hit using regex in libc on freebsd 6.3. I've > done some test whit the patterns that l7-filter [http://l7-filter.sf.net] use > to recognize level 7 internet protocol. For example, with the skypeout > pattern, > regexec() takes more tha 0.1 sec to do its work. Is this a know problem?
It's known that regex(3) is slow for some cases. See http://www.freebsd.org/cgi/man.cgi?regex , especially the paragraphs """ The regexec() function performance is poor. This will improve with later releases. The nmatch argument exceeding 0 is expensive; nmatch exceeding 1 is worse. The regexec() function is largely insensitive to RE complex- ity except that back references are massively expensive. RE length does matter; in particular, there is a strong speed bonus for keeping RE length under about 30 characters, with most special characters counting roughly double. The regcomp() function implements bounded repetitions by macro expansion, which is costly in time and space if counts are large or bounded repeti- tions are nested. An RE like, say, `((((a{1,100}){1,100}){1,100}){1,100}){1,100}' will (eventually) run almost any existing machine out of swap space. """ Someone with more experience in the regex(3) implementation should see if the pattern: http://l7-filter.sourceforge.net/layer7-protocols/protocols/skypeout.pat Falls into these conditions.
signature.asc
Description: OpenPGP digital signature
