nope. web2py doesn't save a session if no changes to the session has been made, so that's not the case. PS: give the guy some slack, it is one of the most documented benchmark around. However, there is obviously something wrong in his setup. My numbers are not even remotely comparable.
I had no time to set up 2 rigs to make tests, but I figured "what the heck". I have my rig, a full blown desktop installation of ubuntu 10.04, python 2.6.5, no virtualenvs (commented out the relevant lines on the config files (uwsgi.ini)). Machine is an Intel i7 920 2.6 Ghz, 12 GB RAM. Apache Bench is executed on the same machine (Version 2.3 <$Revision: 655654 $>) uwsgi 1.2.6 lying around, web.py 0.37 and of course web2py 2.0.9. Downloaded the repo and set up 4 tests: 1) web2py the way the test has been made (to set a "reference") 2) web.py the way the test has been made (to set a "reference") 3) web2py with "session.forget()" just before "return 'Hello World!'", compiled app, no default "internal-redirection" (the way it's supposed to be the test of web2py) Attached the results For the ones that don't want to read, here's the summary 1) Rps: 3190.58 99% ms 369 2) Rps: 5416.62 99% ms 230 3) Rps: 3304.90 99% ms 359 So, still on the tail, but not that far. @all: benchmarks are useful, documented one as this one is the best thing you can get, but remember that no app is a "hello world". I'm going to test django for everyone's mental-sanity. Wait a few. --
###### 1) web2py niphlod@li-mostro7:~$ ab -c 1000 -n 1000000 http://127.0.0.1:8080/welcome This is ApacheBench, Version 2.3 <$Revision: 655654 $> Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/ Licensed to The Apache Software Foundation, http://www.apache.org/ Benchmarking 127.0.0.1 (be patient) .... Finished 1000000 requests Server Software: Server Hostname: 127.0.0.1 Server Port: 8080 Document Path: /welcome Document Length: 12 bytes Concurrency Level: 1000 Time taken for tests: 313.423 seconds Complete requests: 1000000 Failed requests: 0 Write errors: 0 Total transferred: 318000000 bytes HTML transferred: 12000000 bytes Requests per second: 3190.58 [#/sec] (mean) Time per request: 313.423 [ms] (mean) Time per request: 0.313 [ms] (mean, across all concurrent requests) Transfer rate: 990.82 [Kbytes/sec] received Connection Times (ms) min mean[+/-sd] median max Connect: 0 0 0.4 0 18 Processing: 22 313 13.8 310 400 Waiting: 22 313 13.8 310 399 Total: 40 313 13.7 310 400 Percentage of the requests served within a certain time (ms) 50% 310 66% 313 75% 315 80% 316 90% 321 95% 344 98% 367 99% 369 100% 400 (longest request) ###### 2) web.py (without thread-stacksize = 64, won't work on my rig) niphlod@li-mostro7:~$ ab -c 1000 -n 1000000 http://127.0.0.1:8080/welcome This is ApacheBench, Version 2.3 <$Revision: 655654 $> Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/ Licensed to The Apache Software Foundation, http://www.apache.org/ Benchmarking 127.0.0.1 (be patient) .... Finished 1000000 requests Server Software: Server Hostname: 127.0.0.1 Server Port: 8080 Document Path: /welcome Document Length: 12 bytes Concurrency Level: 1000 Time taken for tests: 184.617 seconds Complete requests: 1000000 Failed requests: 0 Write errors: 0 Total transferred: 31000000 bytes HTML transferred: 12000000 bytes Requests per second: 5416.62 [#/sec] (mean) Time per request: 184.617 [ms] (mean) Time per request: 0.185 [ms] (mean, across all concurrent requests) Transfer rate: 163.98 [Kbytes/sec] received Connection Times (ms) min mean[+/-sd] median max Connect: 0 0 0.7 0 22 Processing: 21 184 7.9 183 243 Waiting: 20 184 7.9 183 243 Total: 42 184 7.7 183 243 Percentage of the requests served within a certain time (ms) 50% 183 66% 183 75% 184 80% 184 90% 186 95% 193 98% 216 99% 230 100% 243 (longest request) ###### 3) session.forget() compiled web2py no default redirection ab -c 1000 -n 1000000 http://127.0.0.1:8080/welcome/default/index This is ApacheBench, Version 2.3 <$Revision: 655654 $> Copyright 1996 Adam Twiss, Zeus Technology Ltd, http://www.zeustech.net/ Licensed to The Apache Software Foundation, http://www.apache.org/ Benchmarking 127.0.0.1 (be patient) .... Finished 1000000 requests Server Software: Server Hostname: 127.0.0.1 Server Port: 8080 Document Path: /welcome/default/index Document Length: 12 bytes Concurrency Level: 1000 Time taken for tests: 302.581 seconds Complete requests: 1000000 Failed requests: 0 Write errors: 0 Total transferred: 230000000 bytes HTML transferred: 12000000 bytes Requests per second: 3304.90 [#/sec] (mean) Time per request: 302.581 [ms] (mean) Time per request: 0.303 [ms] (mean, across all concurrent requests) Transfer rate: 742.31 [Kbytes/sec] received Connection Times (ms) min mean[+/-sd] median max Connect: 0 0 0.5 0 18 Processing: 22 302 13.6 299 394 Waiting: 22 302 13.6 299 394 Total: 40 302 13.5 299 394 Percentage of the requests served within a certain time (ms) 50% 299 66% 302 75% 303 80% 305 90% 317 95% 333 98% 347 99% 359 100% 394 (longest request)