Hi Ara,

out of curiosity, I have been playing around with my apache2 setup and
benchmarked cgi, acgi and fcgi. I used this configuration for maximum
performance:

<IfModule prefork.c>
StartServers        100
MinSpareServers     100
MaxSpareServers     100
MaxClients          250
MaxRequestsPerChild  50
</IfModule>

Running on my Athlon-2800 I get these results:

CGI:
# ab -n100 -c10 http://127.0.0.1:8080/env.cgi | grep "Requests per
second"
Requests per second:    52.00 [#/sec] (mean)

ACGI:
# ab -n100 -c10 http://127.0.0.1:8080/index.cgi | grep "Requests per
second"
Requests per second:    306.55 [#/sec] (mean)

FCGI:
# ab -n100 -c10 http://127.0.0.1:8080/server.fcgi | grep "Requests per
second"
Requests per second:    952.44 [#/sec] (mean)

I think acgi could outperform fcgi, because the fcgi-protocol takes
cares about multiplexing and the ruby-fcgi is not multi-threaded. So
this multiplexing thing is maybe overhead. Do you plan a multithreaded
implementation of acgi on the ruby side? I guess not.

On the other hand the bottleneck is maybe the additional fork and exec,
so mod_acgi is maybe worth doing.

Cheers,
Matthias