I thought I had precompiled my app, in this sense does "precompile" the app 
mean generating pyc's for all the relevant models? In that case, yes that 
was done. I haven't messed with conditional ones at all so far. It should 
also be mentioned that I experience the same response times when running 
from rocket as well as nginx+uwsgi.

Matt

On Wednesday, June 12, 2013 11:04:48 AM UTC-4, Niphlod wrote:
>
> given that you can pre-compile your app, did you test if the compilation 
> time drops before moving around your models to use conditional ones ?
>
> On Wednesday, June 12, 2013 3:47:47 PM UTC+2, Matt wrote:
>>
>> Hi,
>> We use web2py somewhat differently than most use cases in that we aren't 
>> using a database at all, but instead back our web2py app with connections 
>> to a server over a local unix RPC socket. We still use web2py to perform 
>> validations, and UI generation, so we have a bunch of models that basically 
>> contain gluon Field's, and then either call SQLFORM on that model's fields 
>> or serialize that model and send it over the wire. More specifically, we 
>> have a number of controllers that correspond to a model 
>> (controllers/foo.py, and a model/foo.py that we can call SQLFORM on to 
>> generate a form), and then we have a single rest.py controller that 
>> provides a rest interface to the rpc socket (rest.py basically mirrors all 
>> of the controllers with methods defined as: @request.restful(), validates 
>> the data using the correct "model", and communicates over the rpc socket)
>>
>> I've been doing a number of benchmarks recently, and found that while it 
>> generally takes ~3.5ms to receive a response over the unix domain socket, 
>> calls to the web2py rest controller are taking somewhere around ~80-90ms to 
>> return. My suspicion is that this is because web2py is compiling all of the 
>> models for every request (running web2py with the profiler seems to 
>> corroborate this, indicating that most of the time spent in the response is 
>> in compileapp). From my reading it also seems that we can reduce the 
>> compilation time of compileapp by using conditional models, however the 
>> rest.py controller potentially uses all of them given which method is 
>> called in the controller. There also seems to be an undocumented 
>> response.models_to_run method that I'm not sure I understand fully. 
>>
>> What would be the best way to reduce the response time of this rest.py 
>> controller? Can I put response.models_to_run inside each of the controller 
>> methods in rest.py, to ensure that only the models we need for the 
>> operation are compiled? Am I off track here, and the model compilation is 
>> not the source of latency?
>>
>>
>>
>>

-- 

--- 
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 web2py+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.


Reply via email to