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 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