in reply to an interesting web frameworks benchmark
My CGI::Application version uses the following main components:
I made it into a framework-like application by using the following plugins and modules:
Even though the numbers are not as informative as I'd like them to be -- due to my lack of Ruby skills -- I still want to show you the benchmark results I got sofar:
Summary - 1 minute test with 15 concurrent users | |||
---|---|---|---|
Ruby/CGI | Perl/CGI | Perl/mod_perl | |
Transactions | 70 | 212 | 1685 |
Transaction rate | 1.17 t/s | 3.53 t/s | 28.11 t/s |
Longest transaction | 13.53 s | 10.40 s | 0.19 s |
Summary - 3 minute test with 50 concurrent users | |||
---|---|---|---|
Ruby/CGI | Perl/CGI | Perl/mod_perl | |
Transactions | 159 | 607 | 14245 |
Transaction rate | 0.88 t/s | 3.37 t/s | 79.23 t/s |
Longest transaction | 88.64 s | 22.76 s | 5.24 s |
Machine config: 1 Xeon 3.0GHz 2GB RAM OS: Debian Sarge amd64 Software: Apache/2.0.54 (Debian GNU/Linux) mod_ruby/1.2.4 Ruby/1.8.2(2005-04-11) mod_perl/1.999.21 Perl/v5.8.4 Siege 2.61 MySQL 4.1.11 ==== siege -t 1M -c 15 ==== == ruby cgi == ** siege 2.61 ** Preparing 15 concurrent users for battle. The server is now under siege... Lifting the server siege... done. Transactions: 70 hits Availability: 100.00 % Elapsed time: 59.96 secs Data transferred: 97770 bytes Response time: 11.36 secs Transaction rate: 1.17 trans/sec Throughput: 1630.59 bytes/sec Concurrency: 13.27 Successful transactions: 70 Failed transactions: 0 Longest transaction: 13.53 Shortest transaction: 8.30 == perl cgi == ** siege 2.61 ** Preparing 15 concurrent users for battle. The server is now under siege... Lifting the server siege... done. Transactions: 212 hits Availability: 100.00 % Elapsed time: 60.05 secs Data transferred: 118853 bytes Response time: 3.56 secs Transaction rate: 3.53 trans/sec Throughput: 1979.23 bytes/sec Concurrency: 12.56 Successful transactions: 212 Failed transactions: 0 Longest transaction: 10.40 Shortest transaction: 0.91 == mod_perl == ** siege 2.61 ** Preparing 15 concurrent users for battle. The server is now under siege... Lifting the server siege... done. Transactions: 1685 hits Availability: 100.00 % Elapsed time: 59.95 secs Data transferred: 920626 bytes Response time: 0.02 secs Transaction rate: 28.11 trans/sec Throughput: 15356.56 bytes/sec Concurrency: 0.60 Successful transactions: 1685 Failed transactions: 0 Longest transaction: 0.19 Shortest transaction: 0.01 ==== siege -t 3M -c 50 ==== == ruby cgi == ** siege 2.61 ** Preparing 50 concurrent users for battle. The server is now under siege... Lifting the server siege.. done. Transactions: 159 hits Availability: 100.00 % Elapsed time: 180.47 secs Data transferred: 243663 bytes Response time: 48.77 secs Transaction rate: 0.88 trans/sec Throughput: 1350.16 bytes/sec Concurrency: 42.97 Successful transactions: 159 Failed transactions: 0 Longest transaction: 88.64 Shortest transaction: 29.70 == perl cgi == ** siege 2.61 ** Preparing 50 concurrent users for battle. The server is now under siege... Lifting the server siege.. done. Transactions: 607 hits Availability: 100.00 % Elapsed time: 179.98 secs Data transferred: 333548 bytes Response time: 13.61 secs Transaction rate: 3.37 trans/sec Throughput: 1853.25 bytes/sec Concurrency: 45.89 Successful transactions: 607 Failed transactions: 0 Longest transaction: 22.76 Shortest transaction: 6.25 == mod_perl == ** siege 2.61 ** Preparing 50 concurrent users for battle. The server is now under siege... Lifting the server siege... done. Transactions: 14245 hits Availability: 100.00 % Elapsed time: 179.80 secs Data transferred: 7772678 bytes Response time: 0.12 secs Transaction rate: 79.23 trans/sec Throughput: 43229.58 bytes/sec Concurrency: 9.64 Successful transactions: 14245 \Failed transactions: 0 Longest transaction: 5.24 Shortest transaction: 0.01
|
---|