On Friday, September 16, 2016 at 7:58:26 AM UTC-4, Przemysław Loesch wrote:
> Massimo thank you very much for your answer. I have one more question a
> bit out of the topic.
> Is it a way to increase web2py efficiency when it is used only for
> database transactions and user authorization? I don't use web2py html
> helpers, forms, views processing etc. Complete GUI of my app is created in
> In these conditions is it a part of web2py which could be "turned off" eg.
> by removing imports of unnecessary modules or by setting variables? So far
> the speed the server responses is very good but soon I'll have much bigger
> load and just want to be sure that server side process is as
> straightforward as it can be.
There is not really much framework functionality you can turn off or forego
in order to increase performance, but here are a few things to consider:
On a given request, if you don't need the session, you should call
session.forget(response) in order to skip checking the session for changes.
For a bigger benefit, you can completely disable sessions for particular
routes by using the pattern-based re-write system and adding
dict(web2py_disable_session=True) to any relevant routes (see this example
Unfortunately, this doesn't work with the parameter-based rewrite system.
Whenever you fetch data using the DAL, if you don't need the .update_record
or .delete_record methods, do .select(..., cacheable=True), which will
slightly speed up the creation of the Row objects. More generally, you can
specify your own custom processor via .select(...,
processor=custom_processor), which allows you to forego the creation of a
Rows object altogether -- instead, your custom processor receives the list
of tuples returned by the database driver, and you can do whatever minimal
processing you need.
You can also skip the Auth initialization code on any routes that will not
need Auth or any auth.user data (actually, you can get auth.user data for
logged in users directly from session.auth.user).
There's another trick to get a modest speedup -- put your controller code
in a module, import it in a model file, and send the response directly from
the model (see this example
Probably only worth it on requests that are otherwise very fast (i.e., not
involving the database).
There are, of course, many other things you can do to improve efficiency,
such as compiling the app and caching as much as possible.
- 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
To unsubscribe from this group and stop receiving emails from it, send an email
For more options, visit https://groups.google.com/d/optout.