cache method calls as valid methods if seen previously to avoid can()
overhead?  Turns out that this is _much_ slower than just letting
perl handle it (by about 30% - ack)

make class/method available to pre/post/error handlers
  Tatsuhiko Miyagawa

test suite

serious benchmarking...

I tried to do some quick benchmarking using a real handler - I used a
method handler so it runs under Apache::Dispatch and normal mod_perl 
without modification.

the handler did the following:
  run an Oracle stored procedure (using Apache::DBI with connect_on_init)
  fill in a simple template using Text::Template
  output results

I think the results look pretty promising in a real world scenario

Joshua Chamas ran some Hello World benchmarks that included Dispatch.pm - 
the results are down at the bottom of the page...

----------------------------------------------------------------------
using a single <Location> directive with a method handler

[gyoung@account-test bin]$ ./ab -n10000 -c10 \
-C'MYA::Authenticate_=quality:12568' \
http://account-test.laserlink.net/test

This is ApacheBench, Version 1.3c <$Revision: 1.2 $> apache-1.3
Copyright (c) 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Copyright (c) 1998-1999 The Apache Group, http://www.apache.org/

Server Software:        Apache/1.3.12                                      
Server Hostname:        account-test.laserlink.net
Server Port:            80

Document Path:          /test
Document Length:        8703 bytes

Concurrency Level:      10
Time taken for tests:   697.210 seconds
Complete requests:      10000
Failed requests:        0
Total transferred:      88548854 bytes
HTML transferred:       87038703 bytes
Requests per second:    14.34
Transfer rate:          127.00 kb/s received

Connnection Times (ms)
              min   avg   max
Connect:        0     1   372
Processing:    99   695  2110
Total:         99   696  2482
 
----------------------------------------------------------------------
using Apache::Dispatch with DispatchISA On

[gyoung@account-test bin]$ ./ab -n10000 -c10 \
-C'MYA::Authenticate_=quality:12568' \
http://account-test.laserlink.net/scripts/Plan/show

This is ApacheBench, Version 1.3c <$Revision: 1.2 $> apache-1.3
Copyright (c) 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/
Copyright (c) 1998-1999 The Apache Group, http://www.apache.org/

Server Software:        Apache/1.3.12                                      
Server Hostname:        account-test.laserlink.net
Server Port:            80

Document Path:          /scripts/Plan/show
Document Length:        8703 bytes

Concurrency Level:      10
Time taken for tests:   725.533 seconds
Complete requests:      10000
Failed requests:        0
Total transferred:      88540000 bytes
HTML transferred:       87030000 bytes
Requests per second:    13.78
Transfer rate:          122.03 kb/s received

Connnection Times (ms)
              min   avg   max
Connect:        0     0   263
Processing:    91   724  2072
Total:         91   724  2335


----------------------------------------------------------------------
----------------------------------------------------------------------
here are Josh's benchmark results (thanks Josh!):

Geoffrey Young wrote:
> 
> here's a patch against the bench.pl you sent...  I already knew that
> Apache::Dispatch didn't do too well in hello world type stuff.  oh, well...
> 
> I tried to get a mod_perl method handler going, but it seems not to work
> unless there is a physical .pm around as part of its internal checks...
> 

What you gave me is good.  What do you mean "didn't do too well"? 
It screamed!  I'm only seeing a .00035 sec diff between it and a 
normal modperl handler on my system.

--Josh

Test Name                 Test File    Hits/sec     Total Hits   Total Time   sec/Hits     
------------              ------------ ------------ ------------ ------------ ------------ 
Apache::ASP               hello.asp     410.4       24623 hits   60.00 sec    0.002437     
Apache::Dispatch handler  dispatch/tes  658.7       39524 hits   60.00 sec    0.001518     
Apache::Registry CGI Raw  hello_raw.re  717.3       43036 hits   60.00 sec    0.001394     
Apache::Registry CGI.pm   hello.reg     479.2       28756 hits   60.00 sec    0.002087     
Apache::SSI               hello.shtml   481.4       28885 hits   60.00 sec    0.002077     
HTML static               hello.html   1183.7       50000 hits   42.24 sec    0.000845     
HTML::Embperl             hello.epl     487.7       29266 hits   60.00 sec    0.002050     
HTML::Mason               hello.mas     367.5       22052 hits   60.00 sec    0.002721     
Template Toolkit          hello.tt      537.9       32275 hits   60.00 sec    0.001859     
mod_include SSI           hello.shtml   916.6       50000 hits   54.55 sec    0.001091     
mod_perl handler          hello.bench   856.0       50000 hits   58.41 sec    0.001168

Josh's official Linux Hello World 2000 benchmark results posting can be seen at
http://forum.swarthmore.edu/epigone/modperl/sercrerdprou/3A56F551.4EADEB43@chamas.com

