I've recently been comparing Web2py and PHP, this is what i found, maybe it 
helps:

1.: PHP is faster whereever it can do stuff within the interpreter, that 
includes handling post/get-data or templates. The PHP interpreter is 
written in C, so these things are really fast, whereas Web2py has to to 
them in Python.
2. DB access is heavily dependent on how many records you retrieve. 
Translating a query from DAL to SQL is basically free (so using the DAL 
syntax for DB access isn't an issue), putting the data into Python objects 
is quite expensive however. Only query what you really need. Also, using 
executesql() instead of the regular DAL syntax may help there, as it 
returns tuples, not complex data structures
3. I've found the default config for Apache2 to be somewhat broken as far 
as concurrency is concerned. Check your Apache/WSGI config, you probably 
have a line like "WSGIDaemonProcess web2py user=www-data group=www-data" in 
there. This actually defaults to 1 process with 15 threads, which -- on my 
machine -- completely kills performance (Python doesn't do threads well 
because of the global interpreter lock). I've found that even something 
like "WSGIDaemonProcess web2py user=www-data group=www-data processes=1 
threads=1" improves performance for concurrent requests dramatically. Try 
tinkering with the processes-value to find the best config for your 
machine. 

-- 
Resources:
- http://web2py.com
- http://web2py.com/book (Documentation)
- http://github.com/web2py/web2py (Source code)
- https://code.google.com/p/web2py/issues/list (Report Issues)
--- 
You received this message because you are subscribed to the Google Groups 
"web2py-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to