A few things:
- In your results, could you add the speedycgi version number (2.02),
and the fact that this is using the mod_speedycgi frontend.
The fork/exec frontend will be much slower on hello-world so I don't
want people to get the wrong idea. You may want to benchmark
the fork/exec version as well.
- You may be able to eke out a little more performance by setting
MaxRuns to 0 (infinite). The is set for mod_speedycgi using the
SpeedyMaxRuns directive, or on the command-line using "-r0".
This setting is similar to the MaxRequestsPerChild setting in apache.
- My tests show mod_perl/speedy much closer than yours do, even with
MaxRuns at its default value of 500. Maybe you're running on
a different OS than I am - I'm using Redhat 6.2. I'm also running
one rev lower of mod_perl in case that matters.
> Hey Sam, nice module. I just installed your SpeedyCGI for a good 'ol
> HelloWorld benchmark & it was a snap, well done. I'd like to add to the
> numbers below that a fair benchmark would be between mod_proxy in front
> of a mod_perl server and mod_speedycgi, as it would be a similar memory
> saving model ( this is how we often scale mod_perl )... both models would
> end up forwarding back to a smaller set of persistent perl interpreters.
>
> However, I did not do such a benchmark, so SpeedyCGI looses out a
> bit for the extra layer it has to do :( This is based on the
> suite at http://www.chamas.com/bench/hello.tar.gz, but I have not
> included the speedy test in that yet.
>
> -- Josh
>
> Test Name Test File Hits/sec Total Hits Total Time sec/Hits
> Bytes/Hit
> ------------ ---------- ---------- ---------- ----------
>---------- ----------
> Apache::Registry v2.01 CGI.pm hello.cgi 451.9 27128 hits 60.03 sec 0.002213
> 216 bytes
> Speedy CGI hello.cgi 375.2 22518 hits 60.02 sec 0.002665
> 216 bytes
>
> Apache Server Header Tokens
> ---------------------------
> (Unix)
> Apache/1.3.14
> OpenSSL/0.9.6
> PHP/4.0.3pl1
> mod_perl/1.24
> mod_ssl/2.7.1