Search squid archive

Re: Regex optimization

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

 



On 27/04/2016 11:32 p.m., Alfredo Rezinovsky wrote:
> I saw in debug log that when an ACL has many regexes each one is compared
> sequentially.
> 
> If I have
> 
> www.facebook.com
> facebook.com
> www.google.com
> google.com
> 
> If will be faster to check just ONE optimized regex like
> (www\.)?(facebook|google).com than the previous three?
> 
> I'm really talking about optimizing about 3000 url regexes in one huge
> regex because comparing each and every url to 3000 regexes is too slow.
> 
> I know using
> (www\.facebook\.com)|(facebook\.com)|(www\.google\.com)|(google\.com) with
> PCRE will produce the same optimized result as
> (www\.)?(facebook|google)\.com. Squid uses GnuRegex. Does GNURegex lib
> optimizes this as well ?

1) It is kind of a myth that Squid uses GNURegex.

Squid *bundles* with a copy of GNURegex. For use on systems which do not
provide their own regex library.

Most of the time Squid uses the system -lregex. Which on some systems is
an updated version of GNURegex, sometimes is a Perl based library, and
others the PCRE library. On the latest OS the C++11 stdlib itself builds
in regex components, so those are possibly used as well.

AFAICT, the only system where the Squid bundled GNURegex library is
still actually used is Windows.


2) sort of. You are thinking it compacts down to a differnet textual
form. It does not.

All regex libraries compact the initial pattern down to a binary format
which is equivalent (but not the same) as the second pattern you wrote.
Squid uses the library API which does that compaction.

Current Squid versions will also load multiple sequential lines from
your config file and explicitly append them together. No need to do it
manually for regex ACLs.

Amos

_______________________________________________
squid-users mailing list
squid-users@xxxxxxxxxxxxxxxxxxxxx
http://lists.squid-cache.org/listinfo/squid-users




[Index of Archives]     [Linux Audio Users]     [Samba]     [Big List of Linux Books]     [Linux USB]     [Yosemite News]

  Powered by Linux