At 07:55 PM 2/4/00 +0200, Stas Bekman wrote:
> > At 06:17 PM 2/4/00 +0200, Stas Bekman wrote:
> > >The next module is Apache::RegistryNG.
> > >
> > >C<Apache::RegistryNG> is the same as C<Apache::Registry>, aside from
> > >using filename instead of URI for the namespace. It also uses OO
> > >interface.
> > >
> > >   <snip>
> >
> > >There is no compelling reason to use C<Apache::RegistryNG> over
> > >C<Apache::Registry>, unless you want to do add or change the
> > >functionality of the existing I<Registry.pm>.  For example,
> > >C<Apache::RegistryBB> (Bare-Bones) is another subclass that skips the
> > >stat() call performed by C<Apache::Registry> on each request.
> >
> >
> > >One situation where Apache::RegistryNG  may definitely be required  is if
> > >you are rewriting URLS  (using either mod_rewrite or your own 
> handler)  in
> > >certain ways.
> >
> > For instance  if you  have a rewrite rule  of the form XYZ123456.html  ==>
> > /perl/foo.pl?p1=XYZ&p2=123456
> > Apache::Registry loses big, as it recompiles foo.pl  for each unique
> > URL.  We ran into this and were totally baffled  as to why we had no
> > mod_perl performance boost  until Doug pointed us to RegistryNG, which is
> > definitely your friend in these circumstances.
>
>Huh? Why would Apache::Registry recompile /perl/foo.pl ?
>
>p1=XYZ&p2=123456 is a query string and it doesn't affect the created
>script's package name.  Do I miss something?

Yup, or I wasn't clear enough . The point was that we had a whole class of 
URLS that would yield different package names for Registry, even though 
they were all being processed by the same file.

Add to my example above  another rewrite:  ABC999999.html => 
/perl/foo.pl?p1=ABC&p2=999999...
(and another, and another...)
  They all yield different package names  based on the original URL (at 
least if you use mod_rewrite), so Registry has no way of knowing that they 
are all processed by the same script. RegistryNG doesn't have this problem, 
since  the package name is based on $r->filename, which is the same for all 
of them.

- Simon



>_______________________________________________________________________
>Stas Bekman    mailto:[EMAIL PROTECTED]      http://www.stason.org/stas
>Perl,CGI,Apache,Linux,Web,Java,PC     http://www.stason.org/stas/TULARC
>perl.apache.org    modperl.sourcegarden.org   perlmonth.com    perl.org
>single o-> + single o-+ = singlesheaven    http://www.singlesheaven.com

-----------------------------------------------------
Simon Rosenthal ([EMAIL PROTECTED])          
Web Systems Architect
Northern Light Technology       222 Third Street, Cambridge MA 02142
Phone:  (617)577-2796  :       URL:  http://www.northernlight.com
"Northern Light - Just what you've been searching for"

Reply via email to